簡體   English   中英

如何將文件從 s3 保存到當前 jupyter 目錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM