【发布时间】: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 该项目已经结束,我提出了解决方法。我仍然对主要解决方案感兴趣,但我的时间有限。我会一一尝试,因为我仍然没有任何对我有好处的线索(当然有一些例外)。