基本上,我有一个PHP Crud系统。当我添加新的php记录时,我也想将API发布到存储桶中以创建一个新文件夹,并以某种方式将该新文件夹关联到该记录。这样,当我搜索该记录时,便可以从该特定文件夹中列出该记录的对象。如何创建此文件夹?
答案 0 :(得分:2)
您不需要创建文件夹。
Amazon S3中实际上不存在文件夹。相反,对象的文件名(Key
)包含完整路径,包括对象的文件名。
这意味着即使文件夹不存在,您也可以复制这样的文件:
aws s3 cp foo.txt s3://my-bucket/one/two/foo.txt
要使事物像普通文件系统一样“出现”,Amazon S3管理控制台会将one
和two
显示为文件夹,但实际上并不存在。实际上,如果您运行以下命令:
aws s3 rm s3://my-bucket/one/two/foo.txt
这不仅会删除对象,而且“文件夹”也将消失,因为它们从不存在。
管理控制台还可以“创建”文件夹,但实际上它只是创建一个零长度对象,其名称为文件夹的名称(包括完整路径)。这样可以在控制台中显示“空文件夹”(即使它不存在)。
因此,如果您的应用程序希望将“文件夹”与记录相关联,则只需要将 path 与记录相关联。实际需要创建该文件夹。然后,创建以该路径作为前缀的文件,它们会显示在文件夹中,但实际情况是它们的文件名(Key
)包括路径和文件名。
您的应用程序可以调用S3并请求给定前缀的对象列表,并且只会返回该“文件夹”(前缀)中的对象。