要件に基づいて、オブジェクトの不要なタグを削除できます。 タグを削除するオブジェクトを格納するバケットのバージョン管理が有効になっている場合、object Storage Service (OSS) はデフォルトでオブジェクトの現在のバージョンのタグを削除します。 指定したバージョンのオブジェクトのタグを削除するには、オブジェクトのバージョンIDを指定する必要があります。
オブジェクトタグ付けは、キーと値のペアを使用してオブジェクトにタグ付けします。 オブジェクトのタグ付けの詳細については、「オブジェクトのタグ付け」をご参照ください。
オブジェクトタグを削除する方法の詳細については、「DeleteObjectTagging」をご参照ください。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba Cloudサービスを使用してOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSでサポートされているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。
オブジェクトのタグを削除するには、
oss:DeleteObjectTagging
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。
オブジェクトのタグを削除する
タグを削除するオブジェクトを格納するバケットのバージョン管理が有効になっていない場合は、要件に基づいてオブジェクトのタグを削除できます。 タグを削除するオブジェクトを格納するバケットのバージョン管理が有効になっている場合、OSSはデフォルトでオブジェクトの現在のバージョンのタグを削除します。
次のコードは、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtオブジェクトのタグを削除する方法の例を示しています。
パッケージメイン
import (import (import)
"fmt"
"os"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func main() {
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// OSSClientインスタンスを作成します。
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケットの名前を指定します。 例: examplebucket.
bucketName := "examplebucket"
// オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 バケット名をフルパスに含めないでください。
objectName := "exampledir/exampleobject.txt"
// バケット情報を取得します。
bucket, err := client.Bucket(bucketName)
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// オブジェクトのタグを削除します。
err = bucket.DeleteObjectTagging(objectName)
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
fmt.Println("delete object tagging success.")
}
オブジェクトの指定されたバージョンのタグを削除する
タグを削除するオブジェクトを格納するバケットのバージョン管理が有効になっている場合、オブジェクトのバージョンIDを指定することで、指定したバージョンのオブジェクトのタグを削除できます。
次のコードは、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtオブジェクトの指定されたバージョンのタグを削除する方法の例を示しています。
オブジェクトのバージョンIDを照会する方法の詳細については、「オブジェクトのリスト」をご参照ください。
パッケージメイン
import (import (import)
"fmt"
"os"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func HandleError (エラーエラー) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケットの名前を指定します。 例: examplebucket.
bucketName := "examplebucket"
// オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 バケット名をフルパスに含めないでください。
objectName := "exampledir/exampleobject.txt"
// オブジェクトのバージョンIDを指定します。
versionId := "CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm ****"
// バケット情報を取得します。
bucket,err := client.Bucket(bucketName)
if err! =nil {
HandleError(err)
}
// 指定したバージョンのオブジェクトのタグを削除します。
err = bucket.DeleteObjectTagging(objectName,oss.VersionId(versionId))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
fmt.Println("delete object tagging success.")
}