チャンクでBucketチャンクにRevitファイルを送信しようとしています。私のRevitファイルはほぼ13 MBです。ここに私のコードは次のとおりです。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?なぜあなたはそれをチャンクしているのですか?一度にすべてアップロードできます。 –
1 GBを送信するのではなく、単なるサンプルファイルです。私が知る必要があるのは、なぜこれが機能していないのかです。 –