我想将上传文件的最后修改日期发送到服务器。我有javascroipt片段来使用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服务器会将其视为&#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上手动更改条目。
答案 0 :(得分:1)
如果S3 API未返回预期的上次修改日期,您可以检查与上传相关联的lastModifiedDate
对象上的File
的值(如果浏览器支持文件API),将该值作为参数发送到上载成功端点。有关详细信息,请参阅setUploadSuccessParams
API method的文档。