有没有办法(应用编程接口调用)知道亚马逊S3服务器上的当前时间?
这里有一些背景知识来解释为什么我需要这个:
我有一个iphone应用程序,有时必须从亚马逊AWS S3帐户的存储桶中下载一组文件。
在两次这样的下载之间,服务器文件可以被CMS (网络内容管理系统)修改,也可以不被修改。
因此,当第二次下载发生时,客户端应用程序试图通过仅下载自上一次此类下载以来在服务器上修改的文件来提高效率。
为了实现这一点,应用程序存储上次下载的日期,当发生新的下载时,它只关注自上次下载日期以来在服务器上修改的文件(使用通过SDK listObjects()函数访问的“modified date”属性)。
这样做的问题是电话上的日期和s3服务器上修改后的日期可能不兼容。电话用户可能已经改变了他的电话日期和时间设置等。
要做到这一点,保存的“上次下载日期”应该来自亚马逊S3应用程序接口调用,以确保应用程序逻辑使用的所有日期是同步的。
有这样的事情吗?或者可能是另一种选择或变通办法?
发布于 2013-01-30 08:37:38
您可以使用文件哈希而不是修改日期。亚马逊S3Object有一个etag属性,它确实是这样一种散列。检索此属性的方式与访问date的方式相同。
让您的客户端设备将此哈希与文件一起保存。下次连接到服务器时,使用about方法请求etag,并将返回值与本地副本进行比较。
不同的etag值将向客户端指示文件自上次下载以来已更改。这种方法将完全独立于任何datetime功能。
https://stackoverflow.com/questions/14594499
复制相似问题