如何获取现有的s3 bucket(子目录)



对于我正在开发的CDK应用程序,尝试获取现有的s3存储桶路径,然后将一些本地文件复制到该存储桶中。然而,当代码试图搜索bucket时,我会收到这个错误,Failed to create resource. Command '['python3', '/var/task/aws', 's3', 'sync', '--delete', '/tmp/tmpew0gwu1w/contents', 's3://dir/subdir/']' returned non-zero exit status 1.使用以下代码,

如果有人能帮我,那就太好了,不确定"bucket-name"参数是否可以采用bucket路径。

代码行如下,IBucket byName = Bucket.fromBucketName(this, "bucket-name", "dir/subdir");

注意:如果我试图将文件复制到主目录(在本例中为dir(,它可以正常工作。

"path"不是bucket名称的一部分,而是对象密钥(文件名(的一部分。AmazonS3是一个对象存储,不像文件系统那样有目录

从技术上讲,bucket中的每个对象都位于顶层,其名称前面加上"路径"。

因此,如果您有类似s3://bucket/path/sub-path/file.txt的内容,则存储桶名称为bucket对象键(类似于文件名(为path/sub-path/file.txtpath/sub-path/前缀

使用aws s3 syncCLI命令时,前缀将转换为本地驱动器上的目录结构,反之亦然。

有关更多详细信息,请参阅如何在S3存储桶中使用文件夹?

最新更新