【问题标题】:How to move an object within the same S3 bucket using boto client?如何使用 boto 客户端在同一个 S3 存储桶中移动对象?
【发布时间】:2021-08-08 15:49:25
【问题描述】:

我似乎找不到可以在同一个存储桶中移动 S3 对象的函数。我知道除了 s3 客户端之外还有其他方式,但在这种情况下我需要使用 S3 客户端。

【问题讨论】:

  • S3中没有move方法。您必须复制,然后删除旧对象。

标签: python amazon-web-services amazon-s3 boto3 boto


【解决方案1】:

您可以使用 s3fs 模块而不是 boto3 来移动 s3 存储桶中的文件。

import s3fs
path1='s3:///bucket_name/folder1/sample_file.pkl'
path2='s3:///bucket_name/folder2/sample_file.pkl'

s3=s3fs.S3FileSystem()

s3.move(path1,path2)

如果你有凭据,你可以在 S3FileSystem 的 client_kwargs 中传递,如下所示:

import s3fs
path1='s3:///bucket_name/folder1/sample_file.pkl'
path2='s3:///bucket_name/folder2/sample_file.pkl'

credentials= {}
credentials.setdefault("region_name", r_name) # mention the region
credentials.setdefault("aws_access_key_id", a_key) # mention the access_key_id
credentials.setdefault("aws_secret_access_key", s_a_key) # mention the secret_access_key

s3=s3fs.S3FileSystem(client_kwargs=credentials)

s3.move(path1,path2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-07
    • 2021-04-13
    • 1970-01-01
    • 2021-10-29
    • 2020-05-29
    • 2021-04-09
    • 2021-01-17
    • 2018-09-14
    相关资源
    最近更新 更多