我想使用ruby sdk在Amazon S3中创建一个空文件夹。我已经读过S3中没有文件夹概念,因此从理论上讲,要创建一个文件夹,您只需创建一个带有尾随“ /”的空对象
s3 = Aws::S3::Client.new( region: 'eu-west-1',
credentials: creds)
s3.put_object(bucket: "my_bucket",
key: "my_folder/")
这样做会在存储桶上创建一个空对象,但是如果我尝试上传这样的文件:
s3.put_object(bucket: "my_bucket",
key: "my_folder/myfile")
它不会在my_folder中创建文件。它维护旧的空对象,并创建一个文件夹和一个文件。因此,在执行这两个命令之后,存储桶结构为:
my_bucket/
my_folder
my_folder/
my_file
为什么会这样呢?为什么它两次创建对象my_folder?我应该如何创建一个空文件夹供以后使用?
当任何键包含“ /”时,Amazon S3虚拟文件夹即会存在。在S3控制台中浏览存储桶时,它将扫描对象键中的公共前缀,然后使用该前缀显示存储桶的子集。
给定以下对象键:
然后,Amazon S3将显示顶级文件夹“照片”和“视频”。如果删除“ videos / funny.mp4”对象,则“ videos”目录将消失。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句