gpt4 book ai didi

python - 如何从 python 脚本在 s3 存储桶上创建文件夹?

转载 作者:行者123 更新时间:2023-12-02 02:25:23 36 4
gpt4 key购买 nike

我有一个 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是一个对象存储,它被设计为键值存储,其中键是文件的全名,文件的内容是对象。

但是,为了组织简单性,Amazon S3 控制台支持文件夹概念作为对对象进行分组的方式。 Amazon S3 通过使用对象的共享名称前缀来实现此目的(即,对象的名称以公共(public)字符串开头,默认情况下为 /)。对象名称也称为键名称。

我建议您使用boto3包:

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 中所需的 key 名称

关于python - 如何从 python 脚本在 s3 存储桶上创建文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65760007/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com