ACL の完全なコードデモは、『GitHub』をご参照ください。

次の表は、オブジェクトのアクセス制御リスト (ACL) に含まれるアクセス許可について説明しています。

アクセス許可 説明
既定値 オブジェクトの ACL は、バケットの ACL と同一です。 oss.ACLDefault
非公開 オブジェクトを読み書きできるのは、オブジェクト所有者と許可ユーザーだけです。 oss.ACLPrivate
一般公開 オブジェクトを読み書きできるのは、オブジェクト所有者と許可ユーザーだけです。 他のユーザーはオブジェクトを読むことのみできます。 この許可は慎重に承認してください。 oss.ACLPublicRead
公開読み書き すべてのユーザーがオブジェクトを読み書きできます。 この許可は慎重に承認してください。 oss.PublicReadWrite

オブジェクトの ACL 特権はバケットの ACL 特権よりも優先されます。 たとえば、バケットの ACL がプライベートで、オブジェクトの ACL がパブリックの読み書きである場合、すべてのユーザーがそのオブジェクトを読み書きできます。 オブジェクトが ACL で設定されていない場合、その ACL は既定ではバケットの ACL と同じです。

package main

import (
	"fmt"
	"os"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Create an OSSClient instance.
	client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Obtain the bucket.
	bucket, err := client.Bucket("<yourBucketName>")
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Configure an ACL for an object.
	err = bucket.SetObjectACL("<yourObjectName>", oss.ACLPublicReadWrite)
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Obtain the ALC for an object.
	aclRes, err := bucket.GetObjectACL("<yourObjectName>")
	if err ! = nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Println("Object ACL:", aclRes.ACL)
}