如何解决AWS S3-指定的密钥不存在 -用于上传的文件夹
当我将文件夹上载到S3存储桶(拖放)时,我发现它不被视为对象-我无法通过其键(GetObjectAsync() ),而ListObjectsV2Async()不会返回它(我使用的是.net sdk)。 在存储桶下创建文件夹时,我可以得到它,它出现在存储桶对象列表中。 是什么原因呢?
解决方法
Amazon S3没有“目录”或“文件夹”的概念。
相反,对象的完整路径存储在其键(文件名)中。
例如,可以使用以下密钥将对象存储在Amazon S3中:invoices/2020-09/inv22.txt
即使invoices
和2020-09
目录不存在,也可以创建该对象。通过Amazon S3控制台查看时,它会出现,好像这些目录是自动创建的一样,但是如果删除对象,这些目录将消失(因为它们从未存在)。
如果用户单击Amazon S3管理控制台中的“创建文件夹”按钮,则会创建一个与该文件夹同名的零长度对象。即使文件夹内没有对象,这也会“强制”文件夹出现。但是,它实际上不是文件夹。
在使用ListObjects
指定分隔符的同时使用/
命令时,将返回CommonPrefixes
的列表。这相当于您通常认为的子目录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。