日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Go管理文件訪問權限

本文介紹如何管理文件訪問權限。

注意事項

  • 本文以華東1(杭州)外網Endpoint為例。如果您希望通過與OSS同地域的其他阿里云產品訪問OSS,請使用內網Endpoint。關于OSS支持的Region與Endpoint的對應關系,請參見訪問域名和數據中心

  • 本文以從環境變量讀取訪問憑證為例。如何配置訪問憑證,請參見配置訪問憑證

  • 本文以OSS域名新建OSSClient為例。如果您希望通過自定義域名、STS等方式新建OSSClient,請參見初始化

  • 要設置Object訪問權限,您必須具有oss:PutObjectAcl權限;要獲取Object訪問權限,您必須具有oss:GetObjectAcl權限。具體操作,請參見為RAM用戶授權自定義的權限策略

讀寫權限類型

文件的訪問權限(ACL)有以下四種:

訪問權限

描述

訪問權限值

繼承Bucket

文件遵循存儲空間的訪問權限。

oss.ACLDefault

私有

文件的擁有者和授權用戶有該文件的讀寫權限,其他用戶沒有權限操作該文件。

oss.ACLPrivate

公共讀

文件的擁有者和授權用戶有該文件的讀寫權限,其他用戶只有文件的讀權限。請謹慎使用該權限。

oss.ACLPublicRead

公共讀寫

所有用戶都有該文件的讀寫權限。請謹慎使用該權限。

oss.PublicReadWrite

文件的訪問權限優先級高于存儲空間的訪問權限。例如存儲空間的訪問權限是私有,而文件的訪問權限是公共讀寫,則所有用戶都有該文件的讀寫權限。如果某個文件沒有設置過訪問權限,則遵循存儲空間的訪問權限。

示例代碼

以下是設置并獲取文件訪問權限的完整代碼:

package main

import (
	"log"

	"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 {
		log.Fatalf("Failed to create credentials provider: %v", err)
	}

	// 創建OSSClient實例。
	// yourEndpoint填寫Bucket對應的Endpoint,以華東1(杭州)為例,填寫為https://oss-cn-hangzhou.aliyuncs.com。其它Region請按實際情況填寫。
	endpoint := "yourEndpoint"
	client, err := oss.New(endpoint, "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		log.Fatalf("Failed to create OSS client: %v", err)
	}

	// yourBucketName填寫存儲空間名稱。
	bucketName := "yourBucketName"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Failed to get bucket '%s': %v", bucketName, err)
	}

	// 設置文件的訪問權限。
	// yourObjectName填寫不包含Bucket名稱在內的Object的完整路徑。
	objectName := "yourObjectName"
	err = bucket.SetObjectACL(objectName, oss.ACLPublicReadWrite)
	if err != nil {
		log.Fatalf("Failed to set object ACL for '%s': %v", objectName, err)
	}

	// 獲取文件的訪問權限。
	aclRes, err := bucket.GetObjectACL(objectName)
	if err != nil {
		log.Fatalf("Failed to get object ACL for '%s': %v", objectName, err)
	}

	log.Printf("Object ACL for '%s': %s", objectName, aclRes.ACL)
}

相關文檔

  • 關于Object訪問權限的完整示例代碼,請參見GitHub示例

  • 關于設置Object訪問權限的API接口說明,請參見SetObjectACL

  • 關于獲取Object訪問權限的API接口說明,請參見GetObjectACL