再開可能アップロードを使用すると、アップロードするファイルを複数のパーツに分割して同時にアップロードします。 すべてのパーツをアップロードしたら、各パーツを組み合わせて完全なオブジェクトにすることができます。 このようにして、オブジェクト全体のアップロードを完了させます。

指定したファイルを再開可能アップロードでアップロードするには、oss2.resumable_upload メソッドを使用します。以下のパラメーターを設定します。

パラメーター 説明 必須 デフォルト値
bucket バケット名を指定します。 必須 なし
key オブジェクト名を指定します。 必須 なし
filename アップロードするローカルファイルの名前を指定します。 必須 なし
store 進捗情報が格納されているディレクトリを指定します。 オプション Directory '.py-oss-upload' under the HOME directory
headers HTTPヘッダーを指定します。 オプション なし
multipart_threshold オブジェクト長のしきい値を指定します。 オブジェクトの長さがしきい値よりも大きい場合は、再開可能アップロードが使用されます。 オプション 10 MB
part_size 部品サイズを指定します。 オプション Auto-calculated
progress_callback アップロード進捗コールバック関数を指定します。 オプション なし
num_threads 同時アップロードスレッドの数を指定します。 オプション 1

再開可能アップロードを行うには、次のコードを実行します。

# -*- coding: utf-8 -*-
import oss2
# It is highly risky to log on with AccessKey of an Alibaba Cloud account because the account has permissions on all the APIs in OSS. We recommend that you log on as a RAM user to access APIs or perform routine operations and maintenance. To create a RAM account, log on to https://ram.console.aliyun.com.
auth = oss2. Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# This example uses endpoint China East 1 (Hangzhou). Specify the actual endpoint based on your requirements.
bucket = oss2. Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
# When the file length is larger than or be equal to the value of the optional parameter multipart_threshold (10 MB by default), the resumable upload is used. If you do not use the store parameter to specify the directory, a py-oss-upload directory is created under the HOME directory to save upload progress information.
oss2.resumable_upload(bucket, '<yourObjectName>', '<yourLocalFile>')

Python SDK 2.1.0以降では、次のコードに示すように、オプションのパラメーターを使用して再開可能アップロードをサポートしています。

# If you use the store parameter to specify the directory, the progress information is stored in the specified directory. If you use the num_threads to set the number of concurrent upload threads, ensure that the value of oss2.defaults.connection_pool_size is no less than the thread number.. The number of concurrent threads is 1 by default.
oss2.resumable_upload(bucket, '<yourObjectName>', '<yourLocalFile>',
    store=oss2. ResumableStore(root='/tmp'),
    multipart_threshold=100*1024,
    part_size=100*1024,
    num_threads=4)

再開可能アップロードについての詳細は、「OSS 開発者ガイド」の 「再開可能アップロード」 をご参照ください。