Я использую элемент управления загрузкой файлов blueimp в своем конце шрифта и пытаюсь загрузить файл размером более 2 ГБ, получая проблему BUCKET_NAME.s3.amazonaws.com/ net :: ERR_CONNECTION_RESET. Однако, когда я пытаюсь загрузить тот же файл, используя post man, со следующими параметрами, он работает нормально:
acl:VALUE_OF_ACL
policy:VALUE_OF_POLICY
AWSAccessKeyId:VALUE_OF_ACCESS_KEY
signature:VALUE_OF_SIGNATURE
key:SOME_PREFIX/postman/2gb2.pptx
В моем коде я могу загружать файлы размером более 1,5 ГБ. Из спецификации s3 он должен иметь возможность загружать файл 5 ГБ для одного объекта.
Я создаю свою политику с ограничением времени жизни, а также пробую с небольшим ограничением времени, которое составляет 30 минут, но не получилось.
Мой фрагмент кода приведен ниже:
<form id="fileupload" action="BUCKET_NAME.s3.amazonaws.com" method="POST" enctype="multipart/form-data">
<div id="dropzone" tabindex="0" class="fade well" >
<input type="hidden" name="policy" />
<input type="hidden" name="AWSAccessKeyId"/>
<input type="hidden" name="key"/>
<input type="hidden" name="acl"/>
<input type="hidden" name="signature"/>
<div >
<span ><img src="${wikiServerURL}/images/cloud-upload.png" style="width:50px;" /> Drop files to attach or</span>
<span class="fileinput-button"> browse
<input type="file" name="file" multiple>
</span>
</div>
</div>
<div class="fileupload-buttonbar">
<div class="fileupload-buttons" style="width: 100%; ">
<button type="submit" class="start" id="start_upload_file" style="display:none;"></button>
</div>
</div>
<!-- The table listing the files available for upload/download -->
<table role="presentation" cellspacing="0" cellpadding="0"><tbody class="files"></tbody></table>
</form>
$('#fileupload').fileupload({
dropZone: $('#dropzone'),
drop: function (e, data) {
$.each(data.files, function (index, file) {
console.log('Dropped file: ' + file.name);
});
},
change: function (e, data) {
$.each(data.files, function (index, file) {
console.log('Selected file: ' + file.name);
});
},
added:function(e, data) {
getFileUploadDetail(function (s3UploadMetadata) {
var form = new FormData();
form.append("acl", s3UploadMetadata.acl);
form.append("policy", VALUE_OF_POLICY);
form.append("signature", VALUE_OF_SIGNATURE);
form.append("AWSAccessKeyId", VALUE_OF_ACCESS_KEY);
data.formData = form;
form.append("key", s3UploadMetadata.key);
setParentDataAndFrameSize(data);
},data.files[0].name);
},
getFilesFromResponse: function (data) {
var filesMetadata = [];
var metadata = {};
metadata.name = data.files[0].name;
metadata.size = data.files[0].size;
metadata.thumbnailUrl = "SOME_URL";
metadata.deleteType = "GET";
filesMetadata.push(metadata);
return filesMetadata;
},
destroyed: function (e, data) {
},
autoUpload: false,
sequentialUploads: true,
disableImageResize: true,
maxChunkSize: 0,
maxFileSize: 10000000000, // 100GB
paramName: 'file'
}
Я также пытался с чанк загрузкой чанка, но после получения первого чанка ошибка Bad Request (400). Хотя я получаю Etag от s3 после первого чанка, но я не знаю, как использовать ETag в blueimp. Нужна помощь.