FineUploader:上传到Amazon S3时收获原始的上次修改日期

时间:2014-01-04 20:02:23

标签: amazon-s3 fine-uploader

我想将上传文件的最后修改日期发送到服务器。我有javascroipt片段来使用FileApi($(this).fineUploaderS3('getFile', id).lastModifiedDate)来获取它。我希望在uploadSuccess endPoint被调用时发送此信息,但我找不到适合Events | Fine Uploader documentation的回调,但我找不到我可以注入数据。

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

选项2:

向Amazon S3服务询问上次修改日期没有直接帮助,因为上传的文件具有当前日期,而不是文件的原始日期。如果我们能够将信息注入到FineUploader-> S3通信中,并且S3会使用它来设置上传文件的最后修改日期,那就太棒了。

我考虑的其他观点:

如果我使用onSubmitsetParams,那么我的Amazon S3服务器会将其视为&#39; x-amz-meta-lastModified&#39;。问题是,当我上传较大的文件(以其他舞蹈的方式上传)时,我会收到签名错误。 ...<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 不起作用,因为我的研究已经进行了#34; Last Modified&#34;无法在Amazon S3上手动更改条目。

1 个答案:

答案 0 :(得分:1)

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