[英]How to create a folder on s3 bucket from python script?
我有一個 s3 存儲桶my-bucket
和一個 python 腳本,我想在存儲桶中創建另一個文件夾( training_data
),包括一個文本文件。 有人告訴我使用s3fs
,但到目前為止我無法讓它工作,而且我發現文檔相當不直觀。
我正在嘗試的是以下內容:
import os
import s3fs
s3 = s3fs.S3FileSystem(anon=False)
path = 's3://my-bucket/training_data/'
if not os.path.exists(path):
os.makedirs(path)
不幸的是,這不起作用,因為它只是在本地創建一個文件夾。 順便說一句,我已經配置了 AWS 憑證。 誰能幫我?
S3 是一個 object 存儲,它被設計為一個 Key-Value 存儲,其中 key 是文件的全名,文件的內容是 Object。
但是,為了組織簡單,Amazon S3 控制台支持將文件夾概念作為對對象進行分組的一種方式。 Amazon S3 通過為對象使用共享名稱前綴來實現這一點(即,對象的名稱默認以通用字符串/
開頭)。 Object 名稱也稱為鍵名。
我建議您使用boto3
package:
import boto3
s3_client = boto3.client(service_name='s3', aws_access_key_id=access_key,
aws_secret_access_key=secret_key)
with open(source_file_path, 'rb') as f:
self.s3_client.put_object(Bucket=bucket, Body=f, Key=s3_prefix)
在哪里:
source_file_path
- 您要上傳的文件的路徑。
s3_prefix
- s3 中所需的鍵名
您可以將文件寫入 S3。 它將為您處理創建文件夾。
Python 的os
庫用於本地文件系統。 建議使用 boto3 庫來使用put_object
API。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.