使用 Lambda 在 s3 存储桶之间进行 s3 presign url
s3 presign url between s3 buckets using Lambda
希望一切都好。我正在尝试将位于我的 s3 存储桶中的文件上传到另一个存储桶。但是,我想使用 lambda 函数使用 s3 presign URL 将其上传到另一个存储桶,因为我希望它在新存储桶中具有过期功能。上传到目标存储桶时,我将对象文件 URL 作为键传递,但似乎不起作用。一些指导将不胜感激。
import json
import time
import boto3
s3= boto3.client('s3')
time.sleep(10)
bucket_name_file='mybucketname'
#fetch last modified item from bucket
response = s3.list_objects_v2(Bucket=bucket_name2)
all = response2['Contents']
latest = max(all, key=lambda x: x['LastModified'])
my_file_name=latest['Key']
url_of_my_filename='https://'+bucket_name_file+'.s3.amazonaws.com/'+my_file_name
###################################################
destination_bucket_to_send='my_destination_bucket'
url=s3_client.generate_presigned_url('put_object',
Params={'Bucket': destination_bucket,
'Key':url_of_my_filename,
},
ExpiresIn=20000)
您的目标似乎是使用 Amazon Translate 通过转录作业翻译一些文本。然后您希望通过临时 URL.
提供生成的翻译
为此,您可以在转录作业创建的对象上创建 Amazon S3 预签名 URL。然后可以使用此 URL 从 Internet 获取翻译。过期后,URL 将不再提供对该对象的访问。
希望一切都好。我正在尝试将位于我的 s3 存储桶中的文件上传到另一个存储桶。但是,我想使用 lambda 函数使用 s3 presign URL 将其上传到另一个存储桶,因为我希望它在新存储桶中具有过期功能。上传到目标存储桶时,我将对象文件 URL 作为键传递,但似乎不起作用。一些指导将不胜感激。
import json
import time
import boto3
s3= boto3.client('s3')
time.sleep(10)
bucket_name_file='mybucketname'
#fetch last modified item from bucket
response = s3.list_objects_v2(Bucket=bucket_name2)
all = response2['Contents']
latest = max(all, key=lambda x: x['LastModified'])
my_file_name=latest['Key']
url_of_my_filename='https://'+bucket_name_file+'.s3.amazonaws.com/'+my_file_name
###################################################
destination_bucket_to_send='my_destination_bucket'
url=s3_client.generate_presigned_url('put_object',
Params={'Bucket': destination_bucket,
'Key':url_of_my_filename,
},
ExpiresIn=20000)
您的目标似乎是使用 Amazon Translate 通过转录作业翻译一些文本。然后您希望通过临时 URL.
提供生成的翻译为此,您可以在转录作业创建的对象上创建 Amazon S3 预签名 URL。然后可以使用此 URL 从 Internet 获取翻译。过期后,URL 将不再提供对该对象的访问。