Amazon S3:什么被认为是PUT / COPY / POST / LIST请求?

时间:2012-02-11 16:07:44

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

请确认这是否正确:

  • PUT 可能正在将文件上传到S3?
  • COPY 可能正在复制S3中的文件?

发布列表怎么样?

另外一个问题,get_bucket_filesize()和get_object_filesize()(来自PHP SDK)是否被视为LIST请求?

3 个答案:

答案 0 :(得分:7)

根据我使用S3(以及HTTP协议和REST的基础知识)的经验,POST是创建一个新对象(在S3中,它将是一个新文件的上传),而PUT是一个创建新对象或现有对象的更新(即,创建或更新文件)。 例如,每当您获取给定S3存储桶的内容时,您就会遇到LIST操作。您还没有问过,但是GET是从S3下载文件而DELETE显然是删除文件。当然,这些假设取决于您使用的SDK(似乎您使用的是PHP)及其底层实现。我的论点是可以使用GET实现下载,使用PUT或POST上传等等。

看一下S3 REST API,我假设get_bucket_filesize()是作为LIST实现的(桶上的GET操作带来了一些更多的数据,响应中每个对象的大小)和get_object_filesize()作为GET实现(对单个文件使用HEAD操作也会将其大小包含在元数据中)。

答案 1 :(得分:1)

PUT和POST之间没有太大区别。以下内容是从AWS S3文档中复制的。

  

POST是替代形式的PUT ,它允许基于浏览器的上传作为将对象放入存储桶的方式。 通过HTTP标头传递给PUT的参数将作为表单字段传递给multipart / form-data编码的邮件正文中的POST

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html

正如其他人指定的那样,LIST用于列出对象。您可以在以下链接中找到所有操作。

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketOps.html

答案 2 :(得分:-1)

是的,你是对的。 PUT正在上传(特别是一个文件是一个PUT)。我正在观察PUT是针对每个文件还是每个数据包大小,这会使定价更加困难。它正在放置一个文件(不参考大小)。

另外,COPY确实在S3中复制文件,但还有更多。见下文。 我还发现了对POST和LIST的引用;见下文。

所以我在挖掘评估成本时学到了PUT / COPY / POST / LIST和GET请求。我也包括我在哪里发现它(希望从亚马逊获得它)。欢迎所有更正。

亚马逊的常见问题解答在这里:https://aws.amazon.com/s3/faqs/我将在下面引用它。

COPY可以是几件事,其中之一是在成本之间的区域之间进行复制。例如,如果您存储在西VA,并且COPY到北加州地区,则会产生成本。从EC2复制到S3(在我认为的同一区域内)不会产生转移成本。请参阅亚马逊的常见问题解答,参见Q:Amazon S3的费用是多少?

注意:编写文件,然后重写相同的文件存储两个版本(除非你删除的东西)。如果文件完全相同,我猜你不会收取更多费用,但如果我错了,请不要把账单寄给我。 :-)似乎平均大小(一个月)是开帐单。请参阅常见问题(上面的链接)

对于PUT,GET和DELETE,似乎一个文件是一个事务。这对我来说是一个很大的问题(我不希望他们的128k最小尺寸成为每个128k数据包的PUT ......是的,我是偏执狂)。请参阅问题部分,如下所示:

  

问:如何使用Amazon S3收取费用并收取费用?

     

请求示例:

     

假设您在3月份每天将10,000个文件传输到Amazon S3并从Amazon S3传输20,000个文件。然后,您将在3月31日删除5,000个文件。

     

总PUT请求= 10,000个请求x 31天= 310,000个请求

     

总GET请求= 20,000个请求x 31天= 620,000个请求

     

DELETE请求总数= 5,000×1天= 5,000次请求

在问题中提到了LIST: 问:我可以使用Amazon S3 API或管理控制台列出我已归档到Amazon Glacier的对象吗? 它本质上是获取一个文件列表...一个目录,如果你愿意的话。

在RESTObjectPost.html下提到了POST:http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html

我希望有所帮助。这肯定让我对我们的收费更加满意。