如何通过浏览器在s3中创建新的“文件夹”

时间:2019-06-29 23:55:54

标签: php amazon-web-services amazon-s3 aws-sdk

基本上,我有一个PHP Crud系统。当我添加新的php记录时,我也想将API发布到存储桶中以创建一个新文件夹,并以某种方式将该新文件夹关联到该记录。这样,当我搜索该记录时,便可以从该特定文件夹中列出该记录的对象。如何创建此文件夹?

1 个答案:

答案 0 :(得分:2)

您不需要创建文件夹。

Amazon S3中实际上不存在文件夹。相反,对象的文件名(Key)包含完整路径,包括对象的文件名

这意味着即使文件夹不存在,您也可以复制这样的文件:

aws s3 cp foo.txt s3://my-bucket/one/two/foo.txt

要使事物像普通文件系统一样“出现”,Amazon S3管理控制台会将onetwo显示为文件夹,但实际上并不存在。实际上,如果您运行以下命令:

aws s3 rm s3://my-bucket/one/two/foo.txt

这不仅会删除对象,而且“文件夹”也将消失,因为它们从不存在。

管理控制台还可以“创建”文件夹,但实际上它只是创建一个零长度对象,其名称为文件夹的名称(包括完整路径)。这样可以在控制台中显示“空文件夹”(即使它不存在)。

因此,如果您的应用程序希望将“文件夹”与记录相关联,则只需要将 path 与记录相关联。实际需要创建该文件夹。然后,创建以该路径作为前缀的文件,它们会显示在文件夹中,但实际情况是它们的文件名(Key)包括路径和文件名。

您的应用程序可以调用S3并请求给定前缀的对象列表,并且只会返回该“文件夹”(前缀)中的对象。