このトピックでは、追加アップロードの使用方法について説明します。

追加アップロードでファイルをアップロードするには、次のコードを実行します。

# -*- 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>')

# Set the position (the Position parameter) where the object is appended to 0.
result = bucket.append_object('<yourObjectName>', 0, 'content of first append')
# If the object is not uploaded for the first time, you can use the bucket.head_object method or the next_position attribute returned in the last append upload to get the append position.
bucket.append_object('<yourObjectName>', result.next_position, 'content of second append')

ファイルが既に存在する場合は、以下の 2 つのシナリオにおいて例外が起こります。

  • 追加アップロードでファイルをアップロードできない場合、 ObjectNotAppendable の例外が発生します。
  • ファイルは追加アップロードでアップロードできても、追加位置が現在のファイル長と一致しない場合、 PositionNotEqualToLength の例外が発生します。