軟鏈接功能用于便捷訪問Bucket內的常用Object。設置軟鏈接后,您可以使用類似于Windows的快捷方式,通過軟鏈接文件打開Object。
注意事項
本文以華東1(杭州)外網Endpoint為例。如果您希望通過與OSS同地域的其他阿里云產品訪問OSS,請使用內網Endpoint。關于OSS支持的Region與Endpoint的對應關系,請參見OSS地域和訪問域名。
本文以從環境變量讀取訪問憑證為例。如何配置訪問憑證,請參見配置訪問憑證。
本文以OSS域名新建OSSClient為例。如果您希望通過自定義域名、STS等方式新建OSSClient,請參見初始化。
要創建軟鏈接,您必須具有
oss:PutObject
權限;要獲取軟鏈接,您必須具有oss:GetObject
權限。具體操作,請參見為RAM用戶授權自定義的權限策略。
創建軟鏈接
以下代碼用于創建軟鏈接:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫Bucket所在地域對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應的Region信息,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數
region = "cn-hangzhou"
# examplebucket填寫存儲空間名稱。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# 指定軟鏈接指向的目標Object名稱,例如exampleobject.txt。關于Object名稱命名規范的更多信息,請參見Object。
object_name = 'exampleobject.txt'
# 指定軟鏈接名稱,例如examplesymlick.txt。
symlink = 'examplesymlick.txt'
# headers = dict()
# 指定創建軟鏈接時是否允許覆蓋同名目標Object。此處設置為true,表示禁止覆蓋同名目標Object。
# headers['x-oss-forbid-overwrite'] = 'true'
# 指定Object的訪問權限。此處設置為OBJECT_ACL_PRIVATE,表示私有權限。即只有Object的擁有者和授權用戶有該Object的讀寫權限,其他用戶沒有權限操作該Object。
# headers[OSS_OBJECT_ACL] = oss2.OBJECT_ACL_PRIVATE
# 指定Object的存儲類型。此處設置為BUCKET_STORAGE_CLASS_STANDARD,表示標準存儲類型。
# headers['x-oss-storage-class'] = oss2.BUCKET_STORAGE_CLASS_STANDARD
# bucket.put_symlink(object_name, symlink, headers=headers)
# 創建軟鏈接。
bucket.put_symlink(object_name, symlink)
獲取軟鏈接指向的目標文件名稱
獲取軟鏈接要求您對該軟鏈接有讀權限。以下代碼用于獲取軟鏈接以及軟鏈接指向的目標文件名稱:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫Bucket所在地域對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應的Region信息,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數
region = "cn-hangzhou"
# examplebucket填寫存儲空間名稱。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# 填寫軟鏈接名稱。
symlink = 'examplesymlick.txt'
# 獲取軟鏈接以及軟鏈接指向的目標文件名稱。
bucket.get_symlink(symlink)
result = bucket.get_symlink(symlink)
print(result.target_key)
相關文檔
關于創建軟鏈接的API接口說明,請參見PutSymlink。
關于獲取軟鏈接的API接口說明,請參見GetSymlink。
文檔內容是否對您有幫助?