[英]Use AWS lambda to upload video into S3 with download URL
我想使用 AWS lambda 函數將視頻上傳到 S3。 該視頻在我的本地計算機中不可用。 我有“下載網址”。 我不想將它下載到我的本地計算機並上傳到 S3。 我正在尋找一種使用 lambda 函數直接將此視頻文件放入 S3 的解決方案。 如果我使用緩沖區或流媒體,我將消耗大量內存。 有沒有更好的有效解決方案?
我真的很感謝你的幫助。
我有同樣的問題並開發了以下不依賴於/tmp
磁盤限制的快速解決方案。 它使用下載流作為類似文件的對象。
特點:
使用可配置的upload_fileobj 內置分段和線程上傳
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)
您當然可以編寫一個 AWS Lambda 函數來:
/tmp
下載完整文件而不是嘗試以“位”流式傳輸它是最簡單的。 但是,請注意,可用於存儲數據的磁盤空間限制為 500MB 。 如果您的下載大於 500MB,您需要進行一些創造性的編程來下載它的一部分,然后將其作為分段上傳進行上傳。
至於如何下載,請使用您喜歡的任何庫來下載 Web 文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.