Javascript 504 jQuery文件上传错误?
我使用API插件上传大小文件到S3。我正在向服务器发送一个PUT请求,该服务器处理S3上传。我的代码如下:Javascript 504 jQuery文件上传错误?,javascript,jquery,file-upload,amazon-s3,Javascript,Jquery,File Upload,Amazon S3,我使用API插件上传大小文件到S3。我正在向服务器发送一个PUT请求,该服务器处理S3上传。我的代码如下: // Initialize the file upload so we don't get errors angular.element(document.querySelector('#add-file-btn')).fileupload({ url: '/test' }); // Set up o
// Initialize the file upload so we don't get errors
angular.element(document.querySelector('#add-file-btn')).fileupload({
url: '/test'
});
// Set up options for file upload
angular.element(document.querySelector('#add-file-btn')).fileupload(
'option',
{
url: '/temp', // Temporary, replaced in handleAdd
type: 'PUT',
dataType: 'json',
dropZone: 'dropzone-area',
acceptFileTypes: /(\.|\/)(csv|jpe?g|png)$/i, // Only accept csv files (images enabled for testing)
progressInterval: 2000, // Check progress every 2 seconds
autoUpload: true,
paramName: 'files',
formData: {
fileSize: null
},
beforeSend: function(xhr, data) {
// Set request headers
xhr.setRequestHeader('Authorization', 'bearer ' + storageService.get('token'));
xhr.setRequestHeader('Accept', 'application/json ');
},
multipart: true,
add: handleAdd,
submit: handleSubmit,
progress: handleProgress ,
processdone: handleProcessDone,
processfail: handleProcessFail,
start: handleStart,
stop: handleStop,
done: handleDone
}
);
当我上传一个小文件(200 KB)时,文件被成功上传。当我尝试上载一个大文件(2.66 GB)并记录handleProgress()函数中显示的进度时,我看到进度会挂起几分钟,然后它会快速记录最后一个进度,因此在它100%完成后,我看到返回了504网关超时错误
function handleProgress(e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
data.files[0].progress = progress;
console.log(progress)
}
后端的家伙说他的代码可以通过命令行上传大文件,所以我们试图找出为什么它不能通过浏览器工作。有什么想法吗?我知道504错误应该只是一个服务器端问题,但令人困惑的是,它适用于CLI…您是否尝试过使用Chrome开发工具网络选项卡?您可以将webapp中的示例请求复制为curl,然后从命令行重新运行它,并将curl请求命令与后端工程师的请求进行比较。结果是否因主机而异?例如,如果您在与后端相同的主机上运行命令,会怎么样?@我是否已经尝试过,并且事实上已经开始上传工作了。当我去掉很多控制台日志记录和事件广播并将其放入CodePen中时,它就工作了。然而,并非总是如此。有时仍然会出现504个错误。在我自己的代码中(在我的应用程序中,而不是在CodePen中),情况也是如此。有时有效,有时无效。不确定我是否应该为这个问题提出新问题。。。