s3 jQuery上传损坏

时间:2018-08-09 02:40:32

标签: jquery amazon-s3 fetch

我正在使用下面的代码使用预签名的URL将图像文件上传到Amazon S3。它确实上传了文件,但是其内容已损坏(并且and肿)。我已经(a)验证了<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="background"> <footer id="footer"> <div id="footer-nav"> <ul> <li id="info">INFO <ul> <li id="twitter"><a href="https://twitter.com" target="_blank">TWITTER</a></li> <li id="instagram"><a href="https://www.instagram.com" target="_blank">INSTAGRAM</a></li> <li id="email"><a href="mailto:email@email.com">EMAIL</a></li> </ul> </li> </ul> </div> </footer> </div>有122576字节,与原始reader.result文件相同(b)验证了.jpg。上传的文件> 177kb。

作为检查,我使用Postman使用info.fileValue.type = 'image/jpeg'给定的预签名URL上载相同的文件,并将info.url标头设置为Content-Type。上载成功:文件未损坏且长度正确。奇怪的是,我正在向image/jpeg输入相同的URL,相同的二进制数据,并指定相同的内容类型,但得到的结果却不同。我很困惑!

$.ajax

注意在以后添加:

我也尝试使用Fetch发出PUT请求,如下面的代码所示。 结果是相同的:文件已上传到指定的S3存储桶/路径,但文件内容已损坏(并且and肿)。原始文件大小为132,454字节,上传的文件大小为> 192KB。数据正以某种方式更改。

这是$.ajax({ url: info.url, // the presigned URL headers: { 'Access-Control-Allow-Origin': '*' }, contentType: info.fileValue.type, processData: false, type: 'PUT', data: reader.result, success: function() { console.log('Uploaded data successfully.'); } }); 代码:

Fetch

我缺少一个设置吗?

PS。我再次验证,使用相同的文件和相同的预签名URL,当我直接与Postman进行上传时,上传的文件没有损坏。

0 个答案:

没有答案