アップロード
Object Body としてファイルをアップロードすると、Object とファイルを紐付けて管理できます。
JavaScript SDK からは、各 Object Body は 100 MB までのアップロードが可能です(サーバーの安定動作のため、1 回のアップロードリクエストは 1 分程度までを目安としてください)。
Kii Cloud SDK は progress コールバックあり/なし双方のアップロードをサポートしています。なお、Object Body のアップロードには XMLHttpRequest Level 2, FileReader
および Blob
のサポートが必要です。現時点では Titanium SDK はサポート外です。
Server Code では Object Body のアップロードが利用できません。
Object の Object Body をアップロードする例を以下に挙げます。
-
// Create a KiiObject in an application-scope bucket. var object = Kii.bucketWithName("AppBucket").createObject(); // Save the KiiObject. object.save({ success: function(theObject) { // Define a Blob object. You can get a Blob object from an input to an HTML form. var srcData = new Blob(["Hello Blob"], {type: "text/plain"}); // Start uploading. theObject.uploadBody(srcData, { progress: function (oEvent) { if (oEvent.lengthComputable) { // Get the upload progress. You can update the progress bar with this function. var percentComplete = oEvent.loaded / oEvent.total * 100; console.log("upload percentComplete: " + percentComplete); } }, success: function(theObject) { // Upload succeeded. }, failure: function(theObject, errorString) { // Handle the error. } }); }, failure: function(theObject, errorString) { // Handle the error. } });
-
// Create a KiiObject in an application-scope bucket. var object = Kii.bucketWithName("AppBucket").createObject(); // Save the KiiObject. object.save().then( function(theObject) { // Define a Blob object. You can get a Blob object from an input to an HTML form. var srcData = new Blob(["Hello Blob"], {type: "text/plain"}); // Start uploading. return theObject.uploadBody(srcData, { progress: function (oEvent) { if (oEvent.lengthComputable) { // Get the upload progress. You can update the progress bar with this function. var percentComplete = oEvent.loaded / oEvent.total * 100; console.log("upload percentComplete: " + percentComplete); } } }); } ).then( function(theObject) { // Upload succeeded. } ).catch( function(error) { var theObject = error.target; var errorString = error.message; // Handle the error. } );
ここでは以下の処理を実施しています。
- (必要に応じて)KiiObject にキーと値のペアをセット。ファイル名、ファイルサイズ、Object Body の有無などを登録しておくことも可能。
save()
メソッドを実行して、オブジェクトを保存。- アップロード対象ファイルの Blob を作成。
uploadBody()
メソッドを実行して、ファイルのアップロードを開始。
uplaodBody()
メソッドを使用する場合は、事前に save()
メソッドによって Kii Cloud 上に KiiObject を作成しておく必要があります。
progress コールバックは、転送の進捗状況に応じて呼び出されます。転送サイズが小さい場合は、1 回目の呼び出しで 100% の進捗を示すことがあります。
Content-Type は "type/subtype" の形式で指定します。Kii Cloud に送信された Content-Type は、ダウンロード時や、公開された Object Body をブラウザで参照するときに使用されます。