在AWS S3中放置对象时,为什么要使用元数据?

时间:2017-02-09 15:01:39

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

AWS SDK for PHP v3中,方法putObject可以接收许多参数,例如ContentTypeContentEncoding等。

In it's simplest form,我只能使用BucketKeySourceFile来设置对象:

$result = $s3->putObject(array(
    'Bucket'       => $bucket,
    'Key'          => $keyname,
    'SourceFile'   => $filepath
));

考虑到我的应用程序要插入照片,他们必须留在S3中,直到我要删除它为止,设置元数据的优缺点是什么,例如ContentTypeContentEncoding和其他

只有BucketKeySourceFile只能通过我的目标吗?

2 个答案:

答案 0 :(得分:3)

只有Bucket,Key和SourceFile才能实现我的目标,这是最简单的形式吗?

答案是它将满足您的目的,但如果您使用元数据,那么您可以更好地控制您的对象。

根据有关对象元数据的AWS文档,

有两种元数据:

  • 系统元数据:对象创建日期,上次修改,内容长度等元数据是系统控制的,只有Amazon S3才能修改该值。

  • 用户定义的元数据:发送PUT或POST请求以创建对象时,您可以将可选信息设置/修改为名称 - 值(键 - 值)对将来也可以抓住它们。

用例:

  

如果您将存储桶配置为网站,有时可能会   想要将页面请求重定向到另一个页面或外部URL。在   在这种情况下,网页是您桶中的对象。亚马逊S3商店   页面重定向值作为您控制其值的系统元数据。    创建对象时,可以配置这些系统的值   元数据项或更新值

有关对象元数据的更多信息,

http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-metadata

答案 1 :(得分:2)

您拥有系统元数据和用户元数据。

您只需坚持使用存储桶和密钥名称即可。 但是,根据您的应用程序逻辑,用户元数据在各种情况下都会派上用场。 例如,您可以添加额外的信息,例如上传文件原始版本的人的用户名。

但要注意这些限制,不要过期。

  

PUT请求标头的大小限制为8 KB。在PUT请求标头内,用户定义的元数据大小限制为2 KB。用户定义的元数据的大小是通过获取每个键的UTF-8编码中的字节数和值来确定的。