[英]How to download file from website to S3 bucket without having to download to local machine
我正在嘗試從網站下載數據集。 但是,我要下載的所有文件加起來大約 100 GB,我不想下載到我的本地機器,然后上傳到 s3。 有沒有辦法直接下載到 s3 存儲桶? 或者您是否必須使用 ec2,如果可以,有人可以簡要說明如何執行此操作嗎? 謝謝
S3 的put_object()
方法支持字節(或文件)的 Body 參數:
Python 示例:
response = client.put_object(
Body=b'bytes'|file,
Bucket='string',
Key='string',
)
因此,如果您使用 Python 下載網頁,您將使用requests.Get()
方法或.Net,您使用HttpWebRequest
或WebClient
,然后將文件作為字節數組上傳,因此您無需將其保存在本地。 這一切都可以在 memory 中完成。
或者你必須使用ec2
Ec2 只是雲中的虛擬機,您可以從台式電腦/筆記本電腦以編程方式執行此任務(將 100gb 下載到 S3)。 只需打開命令 Window 或終端並輸入:
AWS Configure
輸入 IAM 用戶憑據並使用 aws cli 或使用 AWS SDK,如上面的 python 示例。 您可以為 S3 存儲桶提供允許訪問 IAM 用戶的策略文檔。 這會將所有內容下載到您的本地計算機。
如果您想在 EC2 上運行它並避免將所有內容下載到本地 PC,請修改分配給 EC2 的角色並將其授予 S3 權限。 這將是最簡單和最安全的。 如果您使用內存和字節方法,它將下載所有數據,但不會將其保存到磁盤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.