청크로 Bucket 청크에 Revit 파일을 보내려고합니다. 내 Revit 파일은 거의 13MB입니다.Autodesk Forge 및 416 (요청 된 범위가 만족스럽지 않음)
function handleFileSelect(evt) {
var files = evt.target.files;
var file = files[0];
var segmentSize = 1024 * 1024 * 5; //5 MB
var startingByte = 0;
var endingByte = startingByte + segmentSize - 1;
var segments = Math.ceil(file.size/segmentSize);
var session = Math.floor(100000000 + Math.random() * -900000000);
for (var i = 0; i < segments; i ++)
{
var blob = file.slice(startingByte, endingByte);
var url = 'https://developer.api.autodesk.com/oss/v2/buckets/' + 'linked_model' + '/objects/' + file.name + '/resumable';
//console.log(url);
var contentRange = 'bytes ' + startingByte + '-' + endingByte + '/' + file.size;
$.ajax({
type: 'PUT',
url: url,
data: blob,
headers: {
'Authorization':'Bearer ' + token,
'Content-Type':'application/octet-stream',
'Content-Range': contentRange,
'Session-Id': session
},
crossDomain: true,
processData: false,
success: function (data) {
console.log(i);
startingByte = endingByte + 1;
endingByte = startingByte + segmentSize - 1;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
console.log(startingByte);
console.log(endingByte);
console.log(file.size);
}
});
}
}
그것은 나에게 오류를 제공합니다 : 416 (요청 범위 안 만족할 수)
사람이 도와 줄 수
여기 내 코드는?
이 방법은 거의 동시에 비동기 호출을 만듭니다. 나는 당신이 서로를 하나씩 불러야한다고 상상할 수 있습니다. –
13MB? 왜 당신이 그것을 청크, 당신은 즉시 업로드 할 수 있습니다. –
1GB를 보내는 대신 샘플 파일 일뿐입니다. 내가 알아야 할 것은 이것이 왜 작동하지 않는가하는 것입니다. –