对于我正在开发的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.txt
,path/sub-path/
为前缀。
使用aws s3 sync
CLI命令时,前缀将转换为本地驱动器上的目录结构,反之亦然。
有关更多详细信息,请参阅如何在S3存储桶中使用文件夹?