宛先オブジェクトを指すシンボリックリンクを作成します。 シンボリックリンクを使用して、宛先オブジェクトにアクセスできます。
使用上の注意
PutSymlink 操作を呼び出してシンボリックリンクを作成する場合、Object Storage Service(OSS)は、宛先オブジェクトが存在するかどうか、宛先オブジェクトのストレージクラスが有効かどうか、または宛先オブジェクトにアクセスできるかどうかを確認しません。
シンボリックリンクのアクセス制御リスト(ACL)と、シンボリックリンクが指す宛先オブジェクトの ACL は、GetObject などの API 操作が宛先オブジェクトへのアクセスに呼び出されたときにチェックされます。
PutSymlink リクエストに、名前のプレフィックスが x-oss-meta- であるパラメーターが含まれている場合、そのパラメーターはシンボリックリンクのユーザーメタデータと見なされます。 例:x-oss-meta-location。 1 つのオブジェクトに複数のパラメーターを含めることができます。 ただし、オブジェクトのすべてのユーザーメタデータの合計サイズは 8 KB を超えることはできません。
デフォルトでは、作成するオブジェクトがすでに存在し、既存のオブジェクトにアクセスする権限がある場合、新しいオブジェクトは既存のオブジェクトを上書きし、OSS は 200 OK を返します。
バージョン管理
宛先オブジェクトのシンボリックリンクを作成し、シンボリックリンクを宛先オブジェクトの現在のバージョンにポイントできます。
シンボリックリンクは複数のバージョンを持つことができます。 PutSymlink 操作を呼び出して、シンボリックリンクの各バージョンを異なるオブジェクトにポイントできます。 この場合、バージョンの ID は OSS によって生成され、x-oss-version-id ヘッダーとして応答で返されます。
権限
デフォルトでは、Alibaba Cloud アカウントにはフル権限があります。 Alibaba Cloud アカウントの RAM ユーザーまたは RAM ロールには、デフォルトでは権限がありません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたは バケットポリシーを通じて操作権限を付与する必要があります。
API | アクション | 定義 |
PutSymlink |
| オブジェクトのシンボリックリンクを作成します。 |
| オブジェクトのシンボリックリンクを作成するときに、x-oss-tagging を介してオブジェクトタグを指定する場合、この権限が必要です。 |
リクエスト構文
PUT /ObjectName?symlink HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
x-oss-symlink-target: TargetObjectName
リクエストヘッダー
ヘッダー | タイプ | 必須 | 説明 |
x-oss-forbid-overwrite | String | いいえ | PutSymlink 操作で同名のオブジェクトを上書きするかどうかを指定します。
x-oss-forbid-overwrite ヘッダーを指定すると、OSS の 1 秒あたりのクエリ数(QPS)のパフォーマンスが低下する可能性があります。 多数のリクエスト(QPS が 1,000 を超える)で x-oss-forbid-overwrite ヘッダーを指定する場合は、テクニカルサポートにお問い合わせください。 説明 宛先バケットのバージョン管理が有効または一時停止されている場合、x-oss-forbid-overwrite ヘッダーは有効になりません。 この場合、PutSymlink 操作は同名のオブジェクトを上書きします。 |
x-oss-symlink-target | String | はい | シンボリックリンクが指す宛先オブジェクト。 宛先オブジェクトの命名規則は、オブジェクトの命名規則と同じです。
|
x-oss-object-acl | String | いいえ | オブジェクトの ACL。 デフォルト値:default。 有効な値:
オブジェクト ACL の詳細については、「オブジェクト ACL」をご参照ください。 |
x-oss-storage-class | String | いいえ | オブジェクトのストレージクラス。 オブジェクトのアップロード時に x-oss-storage-class ヘッダーを指定した場合、アップロードされたオブジェクトのストレージクラスは、オブジェクトがアップロードされるバケットのストレージクラスに関係なく、指定されたヘッダー値になります。 たとえば、Infrequent Access(IA)バケットにオブジェクトをアップロードするときに x-oss-storage-class を Standard に設定すると、オブジェクトは Standard オブジェクトとして保存されます。 有効な値:
IA オブジェクトと Archive オブジェクトの最小請求サイズは 64 KB です。 PutSymlink リクエストでは、ストレージクラスを IA または Archive に設定しないことをお勧めします。 ストレージクラスの詳細については、「概要」をご参照ください。 |
Host や Date など、PutSymlink リクエストに含まれる一般的なリクエストヘッダーの詳細については、「一般的なリクエストヘッダー」をご参照ください。
レスポンスヘッダー
PutSymlink リクエストへのレスポンスには、一般的なレスポンスヘッダーのみが含まれています。 詳細については、「一般的なレスポンスヘッダー」をご参照ください。
例
リクエストの例
PUT /link-to-oss.jpg?symlink HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Cache-control: no-cache Content-Disposition: attachment;filename=oss_download.jpg Date: Tue, 08 Nov 2016 02:00:25 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-disposition,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e x-oss-symlink-target: oss**** x-oss-storage-class: Standard
成功レスポンスの例
HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 08 Nov 2016 02:00:25 GMT Content-Length: 0 Connection: keep-alive x-oss-request-id: 582131B9109F4EE66CDE56A5 ETag: "0A477B89B4602AA8DECB8E19BFD4****"
バージョン管理されたバケットのリクエストの例
PUT /link-to-oss.jpg?symlink HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:50:48 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e x-oss-symlink-target: oss.jpg
成功レスポンスの例
HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 09 Apr 2019 06:50:48 GMT Content-Length: 0 Connection: keep-alive x-oss-version-id: CAEQNRiBgMClj7qD0BYiIDQ5Y2QyMjc3NGZkODRlMTU5M2VkY2U3MWRiNGRh**** x-oss-request-id: 5CAC40C8B7AEADE01700064B ETag: "136A5E127272200EDAB170DD84DE****"
OSS SDK
次のプログラミング言語の OSS SDK を使用して、PutSymlink 操作を呼び出すことができます。
ossutil
PutSymlink 操作に対応する ossutil コマンドについては、「put-symlink」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
InvalidArgument | 400 | StorageClass の値が無効なために返されるエラーメッセージ。 |
FileAlreadyExists | 409 | 同名のオブジェクトがすでに存在し、リクエストで x-oss-forbid-overwrite ヘッダーが true に設定されているために返されるエラーメッセージ。 |
FileImmutable | 409 | 削除または変更するデータが保持ポリシーによって保護されているために返されるエラーメッセージ。 |