アップロード
一括アップロードを行う例を以下に挙げます。
-
// Create a KiiObject in an application-scope bucket. KiiObject object = Kii.bucket("AppBucket").object(); // Set key-value pairs. object.set("title", "MyImage"); object.set("fileSize", 783204); try { // Save the KiiObject. object.save(); } catch (IOException e) { // Handle the error. } catch (AppException e) { // Handle the error. } // Specify a file to upload. File localFile = new File(Environment.getExternalStorageDirectory(), "myImage.jpg"); try { // Start uploading. object.uploadBody(localFile, "image/jpeg"); } catch (IOException e) { // Handle the error. } catch (AppException e) { // Handle the error. }
-
// Create a KiiObject in an application-scope bucket. KiiObject object = Kii.bucket("AppBucket").object(); // Set key-value pairs. object.set("title", "MyImage"); object.set("fileSize", 783204); // Save the KiiObject. object.save(new KiiObjectCallBack() { @Override public void onSaveCompleted(int token, KiiObject object, Exception exception) { if (exception != null) { // Handle the error. return; } // Specify a file to upload. File localFile = new File(Environment.getExternalStorageDirectory(), "myImage.jpg"); // Start uploading. object.uploadBody(localFile, "image/jpeg", new KiiObjectBodyCallback() { @Override public void onTransferStart(KiiObject kiiObject) { } @Override public void onTransferProgress(KiiObject object, long completedInBytes, long totalSizeinBytes) { float progress = (float) completedInBytes / (float) totalSizeinBytes * 100.0f; } @Override public void onTransferCompleted(KiiObject object, Exception exception) { if (exception != null) { // Handle the error. return; } } }); } });
ここでは以下の処理を実施しています。
- (必要に応じて)KiiObject にキーと値のペアをセット。ファイル名、ファイルサイズ、Object Body の有無などを登録しておくことも可能。
save()
メソッドを実行して、オブジェクトを保存。- アップロード対象ファイル(myImage.jpg)のリファレンスを作成。
uploadBody()
メソッドを実行して、ファイルのアップロードを開始。
uplaodBody()
メソッドを使用する場合は、事前に save()
メソッドによって Kii Cloud 上に KiiObject を作成しておく必要があります。
ノンブロッキング API の onTransferProgress()
メソッドは、転送の進捗状況に応じて呼び出されます。転送サイズが小さい場合は、1 回目の呼び出しで 100% の進捗を示すことがあります。
Content-Type は "type/subtype" の形式で指定します。Kii Cloud に送信された Content-Type は、ダウンロード時や、公開された Object Body をブラウザで参照するときに使用されます。
Object Body のアップロードで外部記憶装置にアクセスする際、実行時パーミッションが必要になる場合があります。実装方法の詳細は、実行時パーミッションの取得 を参照してください。