import requests
import json
import boto3
def lambda_handler(event, context):
Oracle Cloud Object Storage details
namespace = "***"
bucket_name = "bucket-21092023-s3"
auth_token = "***"
print(event)
S3 event details
s3_bucket = event['Records'][0]['s3']['bucket']['name']
s3_key = event['Records'][0]['s3']['object']['key']
Construct the Oracle Cloud Object Storage URL
#url = f"https://{namespace}.compat.objectstorage.<REGION>.oraclecloud.com/{bucket_name}/{s3_key}"
url = f"https://{namespace}.compat.objectstorage.us-phoenix-1.oraclecloud.com/{bucket_name}/{s3_key}"
Create headers with the Authentication Token
headers = {
"Authorization": f"Bearer {auth_token}",
"Content-Type": "application/json"
}
s3_client = boto3.client('s3')
response = s3_client.get_object(Bucket=s3_bucket, Key=s3_key)
object_data = response['Body'].read()
Read the S3 object
s3_object_data =object_data
print(s3_object_data)
Upload the object to Oracle Cloud Object Storage
#response = requests.put(url, data=s3_object_data, headers=headers)
print(url)
print(headers)
response = requests.put(url, data=s3_object_data, headers=headers)
print(response)
if response.status_code == 200:
return {
'statusCode': 200,
'body': 'Data transfer completed successfully!'
}
else:
return {
'statusCode': response.status_code,
'body': 'Data transfer failed!'
}