再開可能なアップロードを使用してオブジェクトをobject Storage Service (OSS) にアップロードする場合、再開可能なアップロードレコードを格納するチェックポイントファイルのディレクトリを指定できます。 ネットワーク例外またはプログラムエラーのためにオブジェクトのアップロードに失敗した場合、チェックポイントファイルに記録された位置からアップロードタスクが再開されます。
実装方法
オブジェクトは、独立してアップロードできるいくつかの部分に分割できます。 すべてのパーツがアップロードされた後、それらは完全なオブジェクトに結合されます。
再開可能アップロードを実装するには、Bucket#resumable_upload
メソッドを呼び出します。 メソッドは、以下のパラメータを含む。
パラメーター | 説明 | 必須 | デフォルト値 |
キー | OSSにアップロードされたオブジェクトのフルパス。 | 必須 | なし |
ファイル | OSSにアップロードするローカルファイルのフルパス。 説明 アップロード中にローカルファイルのETag値が変更された場合、アップロードは失敗します。 | 必須 | なし |
:cpt_file | チェックポイントファイルのパス。 ファイルに対する書き込み権限が必要です。 説明
| 任意 | ローカルファイルのディレクトリにある |
:disable_cpt | アップロードの進行状況を記録するかどうかを指定します。 有効な値:
| 任意 | false |
:part_size | 各部分のサイズ。 | 任意 | 4 MB |
&ブロック | アップロードの進行状況をブロック単位で処理するかどうかを指定します。 Bucket#resumable_uploadを呼び出したときにブロックを渡すと、アップロードの進行状況はブロック単位で処理されます。 | ✕ | なし |
サンプルコード
次のコードは、再開可能なアップロードを実行する方法の例を示します。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケットの名前を指定します。 例: examplebucket.
bucket = client.get_bucket('examplebucket')
# キーパラメーターをオブジェクトのフルパスに設定します。 バケット名をフルパスに含めないでください。 例: exampledir/example.zip.
# fileパラメーターをアップロードするローカルファイルのフルパスに設定します。 例: /tmp/example.zip。
bucket.resumable_upload('exampledir/example.zip ', '/tmp/example.zip ') do | p |
「進捗状況: #{p} 」を置きます
終了
bucket.resumable_upload (
'exampledir/example.zip '、'/tmp/example.zip '、
: part_size => 100*1024, :cpt_file => '/tmp/example.zip.cpt') { | p |
「進捗状況: #{p} 」を置きます
}