使用 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 将不再提供对该对象的访问。