请确认这是否正确:
发布和列表怎么样?
另外一个问题,get_bucket_filesize()和get_object_filesize()(来自PHP SDK)是否被视为LIST请求?
答案 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
我希望有所帮助。这肯定让我对我们的收费更加满意。