[英]How to save files from s3 into current jupyter directory
我正在使用 python 和 jupyter notebook,並希望將 s3 存儲桶中的文件打開到我當前的 jupyter 目錄中。
我試過了:
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket')
for obj in bucket.objects.all():
key = obj.key
body = obj.get()['Body'].read()
但我相信這只是閱讀它們,我想將它們保存到這個目錄中。 謝謝!
您可以使用 AWS 命令行界面 (CLI),特別是aws s3 cp
命令將文件復制到您的本地目錄。
回復晚了,但今天早些時候一直在努力解決這個問題,我想我會提出我的解決方案。 我需要使用 Sagemaker 上的 Jupyter Notebooks 處理存儲在 S3 上的一堆 pdf。
我通過將文件下載到我的存儲庫來使用一種變通方法,這比上傳文件要快得多,並且讓任何有權訪問 S3 的人都可以重現我的代碼。
Step 1創建所有要下載的對象的列表,然后用'/'分割每個元素,這樣就可以提取文件名用於step 2的迭代
import awswrangler as wr
objects = wr.s3.list_objects({"s3 URI"})
objects_list = [obj.split('/') for obj in objects]
第 2 步創建名為 data 的本地文件夾,然后遍歷列表對象以將它們下載到 jupyter notebooks 中名為 data 的文件夾
import boto3
import os
os.makedirs("./data")
s3_client = boto3.client('s3')
for obj in objects_list:
s3_client.download_file({'bucket'}, #can also use obj[2]
{"object_path"}+obj[-1],#object_path is everything that comes after the / after the bucket in your S3 URI
'../data/'+obj[-1])
而已。 第一次回答這個問題所以我希望它對某人有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.