次のサンプルコードは、examplefile.txtという名前のローカルファイルをexamplebucketバケットのexampledirディレクトリに非同期でアップロードする方法の例を示しています。 ローカルファイルがアップロードされると、オブジェクトの名前はexampleobject.txtになります。 チェックポイントファイルはコンピュータに保存されます。
// バケットの名前を指定します。 例: examplebucket.
String bucketName = "examplebucket";
// オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 バケット名をフルパスに含めないでください。
文字列objectName = "exampledir/exampleobject.txt";
// ローカルファイルのフルパスを指定します。 例: /storage/emulated/0/oss/examplefile.txt
文字列localFilepath = "/storage/emulated/0/oss/examplefile.txt";
String recordDirectory = Environment.getExternalStorageDirectory().getAbsolutePath() + "/oss_record/";
ファイルrecordDir=新しいファイル (recordDirectory);
// チェックポイントファイルを格納するディレクトリが存在することを確認してください。 ディレクトリが存在しない場合は、ディレクトリを作成します。
if (!recordDir.exists()) {
recordDir.mkdirs();
}
// 再開可能なアップロードリクエストを作成し、チェックポイントファイルの絶対パスを指定します。
ResumableUploadRequest request = new ResumableUploadRequest(bucketName、objectName、localFilepath、recordDirectory);
// OSSAsyncTask cancel() メソッドを使用する場合は、DeleteUploadOnCancellingパラメーターをfalseに設定します。 falseは、チェックポイントファイルが保持されていることを示します。 オブジェクトは、次のアップロード時にチェックポイントファイルに記録された位置からアップロードされます。 このパラメーターを指定しない場合、デフォルト値trueが使用されます。 trueは、チェックポイントファイルが削除されたことを示します。 次のアップロード時にオブジェクト全体が再アップロードされます。
request.setDeleteUploadOnCancelling(false);
// アップロードコールバックを設定します。
request.setProgressCallback(new OSSProgressCallback<ResumableUploadRequest>() {
@オーバーライド
public void onProgress(ResumableUploadRequest request, long currentSize, long totalSize) {
Log.d("resumableUpload" 、"currentSize: " + currentSize + "totalSize: " + totalSize);
}
});
OSSAsyncTask resumableTask = oss.asyncResumableUpload(request, new OSSCompletedCallback<ResumableUploadRequest, ResumableUploadResult>() {
@オーバーライド
public void onSuccess(ResumableUploadRequestリクエスト, ResumableUploadResult結果) {
Log.d("resumableUpload" 、"success!");
}
@オーバーライド
public void onFailure(ResumableUploadRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Handle exceptions.
}
});
// 再開可能なアップロードタスクが完了するまで待ちます。
resumableTask.waitUntilFinished();
次のサンプルコードは、ファイルのURIを使用して、ファイルをOSSにアップロードし、Android 10以降のスコープストレージに使用する方法の例を示しています。
// バケットの名前を指定します。 例: examplebucket.
String bucketName = "examplebucket";
// オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 バケット名をフルパスに含めないでください。
文字列objectName = "exampledir/exampleobject.txt";
String recordDirectory = getApplication().getFilesDir().getAbsolutePath() + "/oss_record/";
ファイルrecordDir=新しいファイル (recordDirectory);
// チェックポイントファイルを格納するディレクトリが存在することを確認してください。 ディレクトリが存在しない場合は、ディレクトリを作成します。
if (!recordDir.exists()) {
recordDir.mkdirs();
}
// 再開可能なアップロードリクエストを作成し、チェックポイントファイルの絶対パスを指定します。
// fileUriパラメーターをファイルの実際のURIに設定します。
ResumableUploadRequest request = new ResumableUploadRequest(bucketName、objectName、fileUri、recordDirectory);
// OSSAsyncTask cancel() メソッドを使用する場合は、DeleteUploadOnCancellingパラメーターをfalseに設定します。 falseは、チェックポイントファイルが保持されていることを示します。 オブジェクトは、次のアップロード時にチェックポイントファイルに記録された位置からアップロードされます。 このパラメーターを指定しない場合、デフォルト値trueが使用されます。 trueは、チェックポイントファイルが削除されたことを示します。 次のアップロード時にオブジェクト全体が再アップロードされます。
request.setDeleteUploadOnCancelling(false);
// アップロードコールバックを設定します。
request.setProgressCallback(new OSSProgressCallback<ResumableUploadRequest>() {
@オーバーライド
public void onProgress(ResumableUploadRequest request, long currentSize, long totalSize) {
Log.d("resumableUpload" 、"currentSize: " + currentSize + "totalSize: " + totalSize);
}
});
OSSAsyncTask resumableTask = oss.asyncResumableUpload(request, new OSSCompletedCallback<ResumableUploadRequest, ResumableUploadResult>() {
@オーバーライド
public void onSuccess(ResumableUploadRequestリクエスト, ResumableUploadResult結果) {
Log.d("resumableUpload" 、"success!");
}
@オーバーライド
public void onFailure(ResumableUploadRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Handle exceptions.
}
});
// 再開可能なアップロードタスクが完了するまで待ちます。
resumableTask.waitUntilFinished();
次のサンプルコードは、チェックポイントファイルをコンピューターに保存せずに再開可能なアップロードを実行する方法の例を示しています。
// バケットの名前を指定します。 例: examplebucket.
String bucketName = "examplebucket";
// オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 バケット名をフルパスに含めないでください。
文字列objectName = "exampledir/exampleobject.txt";
// ローカルファイルのフルパスを指定します。 例: /storage/emulated/0/oss/examplefile.txt
文字列localFilepath = "/storage/emulated/0/oss/examplefile.txt";
// 再開可能なアップロード要求を作成します。
ResumableUploadRequest request = new ResumableUploadRequest(bucketName, objectName, localFilepath);
// アップロードコールバックを設定します。
request.setProgressCallback(new OSSProgressCallback<ResumableUploadRequest>() {
@オーバーライド
public void onProgress(ResumableUploadRequest request, long currentSize, long totalSize) {
Log.d("resumableUpload" 、"currentSize: " + currentSize + "totalSize: " + totalSize);
}
});
// asyncResumableUploadメソッドを呼び出して、再開可能なアップロードタスクを実行します。
OSSAsyncTask resumableTask = oss.asyncResumableUpload(request, new OSSCompletedCallback<ResumableUploadRequest, ResumableUploadResult>() {
@オーバーライド
public void onSuccess(ResumableUploadRequestリクエスト, ResumableUploadResult結果) {
Log.d("resumableUpload" 、"success!");
}
@オーバーライド
public void onFailure(ResumableUploadRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Handle exceptions.
}
});
// 再開可能なアップロードタスクが完了するまで待ちます。
resumableTask.waitUntilFinished();