我想使用 AWS lambda 函数将视频上传到 S3。该视频在我的本地计算机中不可用。我有“下载网址”。我不想将它下载到我的本地计算机并将其上传到 S3。我正在寻找一种使用 lambda 函数直接将此视频文件放入 S3 的解决方案。如果我使用缓冲区或流式传输,我会消耗大量内存。有没有更有效的解决方案?
我真的很感谢你的帮助。
最佳答案
我有同样的问题,并开发了以下不依赖于 /tmp
的快速解决方案磁盘限制。它使用下载流作为类似文件的对象。
特征:
import boto3
import botocore.vendored.requests.packages.urllib3 as urllib3
def lambda_handler(event, context):
url='http://yourdownloadurl/file.tgz' # put your url here
bucket = 'aws-s3-bucket' #your s3 bucket
key = 'folder/filename' #your desired s3 path or filename
s3=boto3.client('s3')
http=urllib3.PoolManager()
s3.upload_fileobj(http.request('GET', url,preload_content=False), bucket, key)
关于python - 使用 AWS lambda 通过下载 URL 将视频上传到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44233777/