【问题标题】:FineUploader: Harvest original last modified date when uploading to Amazon S3FineUploader:上传到 Amazon S3 时获取原始上次修改日期
【发布时间】:2014-01-04 20:02:22
【问题描述】:

我想将上传文件的最后修改日期发送到服务器。我有 javascroipt sn-p 使用 FileApi ($(this).fineUploaderS3('getFile', id).lastModifiedDate) 来获得它。我想在调用uploadSuccess 的endPoint 时发送此信息,但我在Events | Fine Uploader documentation 找不到适合我的回调,而且我找不到注入数据的方法。

当上传完成到 S3 时,这些参数作为 POST 参数提交到我的服务器:key、uuid、name、bucket。我想以某种方式在这里注入lastModified 日期。

选项 2:

直接向 Amazon S3 服务询问上次修改日期无济于事,因为上传的文件具有当前日期,而不是文件的原始日期。如果我们可以将信息注入到 FineUploader->S3 通信中,让 S3 使用它来设置上传文件的最后修改日期,那就太好了。

我考虑的其他观点:

如果我使用 onSubmit 和 setParams,那么我的 Amazon S3 服务器会将其视为“x-amz-meta-lastModified”。问题是,当我上传较大的文件(与其他舞蹈一起上传)时,我会收到签名错误。 ...<Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>....

编辑

我认为的其他观点有效。瓶颈是我在setParams 使用的自定义元数据chih 的名称。它不能包含大写字母,否则签名失败。我没有找到任何参考文档。对于一个我检查了Object Key and Metadata - Amazon Simple Storage Service。如果有人能找到我的参考资料,我会在此处附上。

原来的问题(何时以及如何将最后修改日期发送到服务器组件)仍然存在。

(服务器是 PHP。)

EDIT2

选项 2 不起作用,就我的研究而言,“上次修改”条目无法在 Amazon S3 上手动更改。

【问题讨论】:

  • 请展示您的一次失败尝试,包括代码和错误,我们将尝试帮助您修复您的代码。
  • @RayNicholus 该项目已经结束,我提出了解决方法。我仍然对主要解决方案感兴趣,但我的时间有限。我会一一尝试,因为我仍然没有任何对我有好处的线索(当然有一些例外)。

标签: amazon-s3 fine-uploader


【解决方案1】:

如果 S3 API 未返回预期的最后修改日期,您可以检查与上传相关的 File 对象上的 lastModifiedDate 的值(前提是浏览器支持文件 API)并将该值发送为上传成功端点的参数。有关详细信息,请参阅setUploadSuccessParams API method 的文档。

【讨论】:

  • 最后一句话挽救了现在看来的一天。在此之前的所有内容都已由我编写或定义为目标 :-) $(this).fineUploaderS3('getFile', id) 是 File。
猜你喜欢
  • 2013-06-14
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多