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

IMB*_*IMB 10 php amazon-s3 amazon-web-services

请确认这是否正确:

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

如何POSTLIST

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

Vic*_*ari 9

根据我使用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操作也会将其大小包含在元数据中).


小智 5

是的你是对的。PUT就是上传(具体来说一个文件就是一个PUT)。我正在观察 PUT 是按文件还是按某些数据包大小,这会使定价变得更加困难。它正在放置一个文件(不参考大小)。

\n

另外,COPY 确实是在 S3 中复制文件,但还有\xe2\x80\x99s 更多。请参阅下文。\n我还找到了对 POST 和 LIST 的引用;见下文。

\n

因此,我在深入评估我们的成本时了解到了有关 PUT/COPY/POST/LIST 和 GET 请求的知识。I\xe2\x80\x99m 还包括我在哪里发现它的(想从亚马逊获取全部)。欢迎大家指正。

\n

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

\n

复制可能有多种情况,其中之一是在区域之间进行复制,这会产生成本。例如,如果您存储在弗吉尼亚州西部,然后复制到加利福尼亚州北部地区,则会产生费用。从 EC2 复制到 S3(我认为在同一区域内)不会产生传输成本。请参阅 Amazon 的常见问题解答部分中的问题:Amazon S3 的费用是多少?

\n

注意:写入文件,然后重新写入同一文件会存储两个版本(除非您删除某些内容)。我\xe2\x80\x99m 猜测如果文件完全相同,您不会收取更多费用,但如果我\xe2\x80\x99m 错误,请不要将账单发送给我。:-) 看来平均大小(一个月)就是计费的。请参阅常见问题解答(上面的链接)

\n

对于 PUT、GET 和 DELETE,看起来一个文件就是一个事务。这对我来说是一个大问题(我不希望他们的 128k 最小大小成为每个 128k 数据包的 PUT \xe2\x80\xa6 是的,我 \xe2\x80\x99m 偏执)。请参阅问题部分,如下所示:

\n
\n

问:使用 Amazon S3 时如何收费和计费?

\n

请求示例:

\n

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

\n

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

\n

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

\n

删除请求总数 = 5,000\xc3\x971 天 = 5,000 个请求

\n
\n

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

\n

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

\n

我希望这有帮助。这确实让我对我们的收费更加放心。

\n