PutObject 操作はファイルをアップロードするために使用されます。

リクエスト構文

  1. PUT /ObjectName HTTP/1.1Content-LengthContentLengthContent-Type: ContentTypeHost: BucketName.oss-cn-hangzhou.aliyuncs.comDate: GMT DateAuthorization: SignatureValue

リクエストヘッダー

名前 説明
Cache-Control String オブジェクトがダウンロードされたときの Web ページのキャッシュ動作を指定します。 詳細は、 RFC2616 を参照してください。 

デフォルト:なし

Content-Disposition String オブジェクトのダウンロード時にオブジェクトの名前を指定します。 詳細は、 RFC2616 を参照してください。 

デフォルト:なし

Content-Encoding String オブジェクトをダウンロードするときのコンテンツのエンコーディング形式を指定します。 詳細は、 RFC2616 を参照してください。 

デフォルト:なし

Content-Md5 String RFC 1864 で定義されているように、メッセージの内容(ヘッダーを除く)は 128 ビットの MD5 値を取得するために計算されます。 この数値は、Base64 を使用して Content-MD5 値にエンコードされます。 このリクエストヘッダーは、メッセージの有効性、つまりメッセージの内容が送信された内容と一致するかどうかを確認するために使用できます。 このリクエストヘッダーはオプションです。 ただし、このリクエストヘッダーをエンドツーエンドのチェックに使用することをお勧めします。

デフォルト:なし

制限事項:なし

Expires String 有効期限を指定します。 詳細は、 RFC2616 を参照してください。 

デフォルト:なし

注意
OSS は、この値を制限または検証をしません。
x-oss-server-side-encryption String OSS がオブジェクトを作成するときのサーバー側の暗号化アルゴリズムを指定します。

有効な値: AES256 および KMS

注意
KMS 暗号化アルゴリズムを使用するには、コンソールで KMS (キー管理サービス)を有効にする必要があります。 それ以外の場合は、KmsServiceNotenabled エラーコードが返されます。
x-oss-object-acl String OSS がオブジェクトを作成するときのアクセス許可を指定します。 

有効な値: public-read, private、 および public-read-write

詳細分析

  • Content-MD5 リクエストヘッダーをアップロードした場合、OSS は本文の Content-MD5 を計算し、2 つが一貫しているかどうかを確認します。 2 つが異なる場合、エラーコード InvalidDigest が返されます。
  • リクエストヘッダーの Content-Length 値が実際の要求本体で送信されたデータの長さよりも小さい場合、OSS はまだファイルを作成しますが、オブジェクトのサイズは Content-Length で定義されたサイズに等しく、残りのデータは廃棄されます。
  • 追加するオブジェクトと同じ名前のファイルがすでに存在し、このオブジェクトにアクセスする権限がある場合、新しく追加されたファイルは既存のファイルを上書きし、システムは 200 OK メッセージを返します。
  • PutObject 要求で接頭引数 x-oss-meta- が指定された場合、パラメータはユーザーメタとして扱われます(例: x-oss-meta-location )。 1 つのオブジェクトに複数の同様のパラメータを設定できますが、すべてのユーザーメタの合計サイズは 8 KB を超えることはできません。
  • Content length パラメーターがヘッダーに追加されていない場合、システムは 411 Length Required エラーを返します。 エラーコード: MissingContentLength 。
  • 長さが設定されているがメッセージ本文が送信されていないか、送信された本文のサイズが指定されたサイズより小さい場合、サーバーはタイムアウトまで待機してから 400 Bad Request メッセージを返します。 エラーコード:RequestTimeout 。
  • 追加するオブジェクトのバケットが存在しない場合、システムは 404 Not Found エラーを返します。 エラーコード:NoSuchBucket 。
  • 追加するオブジェクトのバケットにアクセスする権限がない場合、システムは 403 Forbidden エラーを返します。 エラーコード:AccessDenied 。
  • 追加されたファイルの長さが 5 GB を超えると、システムは 400 Bad Request メッセージを返します。 エラーコード:InvalidArgument 。
  • 入力オブジェクトキーの長さが 1023 バイトを超える場合、システムは 400 Bad Request メッセージを返します。 エラーコード:InvalidObjectName 。
  • オブジェクトを配置すると、OSS は、RFC2616 で定義されている次の 5 つのヘッダーフィールドをサポートしています。キャッシュコントロール、期限切れ、コンテンツエンコーディング、コンテンツ処理、およびコンテンツタイプ。 オブジェクトをアップロードするときにこれらのヘッダーが設定されている場合、このオブジェクトが次にダウンロードされるときに、対応するヘッダー値が自動的にアップロードされた値に設定されます。
  • オブジェクトをアップロードするときに x-oss-server-side-encryption ヘッダーが指定されている場合は、このヘッダーの値を AES256 に設定する必要があります。 それ以外の場合、システムは 400 エラーとエラーコード InvalidEncryptionAlgorithmError を返します。 このヘッダーが指定されると、応答ヘッダーにもこのヘッダーが格納され、OSS にはアップロードされたオブジェクトの暗号化アルゴリズムが格納されます。 このオブジェクトがダウンロードされるとき、レスポンスヘッダは x-oss-server-side-encryption を含み、その値はこのオブジェクトの暗号化アルゴリズムに設定されます。

FAQ

  • Content-MD5 計算メソッドのエラー

    関連する標準で定義されているアルゴリズム

次のプロセスで Content-MD5 を計算するために使用されます。値が 128 ビットのバイナリ配列であるアップロード Content-MD5 を計算し、次に Base64 でバイナリ配列をエンコードします。 Python が例として使用されています。 正しい計算コードは次のとおりです。
  1. >>> import base64,hashlib>>> hash = hashlib.md5()>>> hash.update(“0123456789”)>>> base64.b64encode(hash.digest())‘eB5eJF1ptWaXm4bijSPyxw==’
hash.digest() の結果は、Base64 エンコーディングの入力として使用されます。 >>> hash.digest() ‘x\x1e^$]i\xb5f\x97\x9b\x86\xe2\x8d#\xf2\xc7’. よくある間違いは、計算された 32 バイトの MD5 文字列を Base64 でエンコードすることです。 間違った例:Base64 で hash.hexdigest() をエンコードする: >>> hash.hexdigest() ‘781e5e245d69b566979b86e28d23f2c7’ 以下は不正確な計算結果です。 >>> base64.b64encode(hash.hexdigest()) ‘NzgxZTVlMjQ1ZDY5YjU2Njk3OWI4NmUyOGQyM2YyYzc=’

リクエスト例:

  1. PUT /oss.jpg HTTP/1.1Host: oss-example.oss-cn-hangzhou.aliyuncs.comCache-control: no-cacheExpires: Fri, 28 Feb 2012 05:38:42 GMTContent-Encoding: utf-8Content-Disposition: attachment;filename=oss_download.jpgDate: Fri, 24 Feb 2012 06:03:28 GMTContent-Type: image/jpgContent-Length: 344606Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:kZoYNv66bsmc10+dcGKw5x2PRrk=[344606 bytes of object data]

レスポンス例:

  1. HTTP/1.1 200 OKServer: AliyunOSSDate: Sat, 21 Nov 2015 18:52:34 GMTContent-Length: 0Connection: keep-alivex-oss-request-id: 5650BD72207FB30443962F9Ax-oss-bucket-version: 1418321259ETag: A797938C31D59EDD08D86188F6D5B872