軟連結功能用於便捷訪問Bucket內的常用Object。設定軟連結後,您可以使用類似於Windows的捷徑,通過軟連結檔案開啟Object。
注意事項
使用本文樣本前您需要先通過自訂網域名、STS等方式建立OSSClient,具體請參見如何初始化Android端OSSClient執行個體。
建立軟連結
以下代碼用於建立軟連結:
// 構建請求。
PutSymlinkRequest putSymlink = new PutSymlinkRequest();
// 填寫Bucket名稱。
putSymlink.setBucketName("yourBucketName");
// 設定軟連結名稱。
putSymlink.setObjectKey("yourSymLink");
// 指定軟連結指向的目標Object名稱。
putSymlink.setTargetObjectName("yourTargetObjectName");
ObjectMetadata metadata = new ObjectMetadata();
// 設定是否禁止覆蓋同名Object。此處設定為true,表示禁止覆蓋同名Object。
//metadata.setHeader("x-oss-forbid-overwrite", "true");
// 指定Object的存取權限。此處設定為private,表示私人許可權。
//metadata.setHeader("x-oss-object-acl", "private");
// 指定Object儲存類型。此處設定為Standard,表示標準儲存。
//metadata.setHeader("x-oss-storage-class", "Standard");
putSymlink.setMetadata(metadata);
OSSAsyncTask task = oss.asyncPutSymlink(putSymlink, new OSSCompletedCallback<PutSymlinkRequest, PutSymlinkResult>() {
@Override
public void onSuccess(PutSymlinkRequest request, PutSymlinkResult result) {
Log.d("PutSymlink", "PutSymlink success");
}
@Override
public void onFailure(PutSymlinkRequest request, ClientException clientException,
ServiceException serviceException) {
// 請求異常。
if (clientException != null) {
// 用戶端異常,例如網路異常等。
clientException.printStackTrace();
}
if (serviceException != null) {
// 服務端異常。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
task.waitUntilFinished();
擷取軟連結指向的目標檔案名稱
擷取軟連結要求您對該軟連結有讀許可權。以下代碼用於擷取軟連結指向的目標檔案名稱:
// 構建請求。
GetSymlinkRequest getSymlink = new GetSymlinkRequest();
// 填寫Bucket名稱。
getSymlink.setBucketName("yourBucketName");
// 填寫軟連結名稱。
getSymlink.setObjectKey("yourSymLink");
OSSAsyncTask task = oss.asyncGetSymlink(getSymlink, new OSSCompletedCallback<GetSymlinkRequest,
GetSymlinkResult>() {
@Override
public void onSuccess(GetSymlinkRequest request, GetSymlinkResult result) {
OSSLog.logInfo("targ::"+result.getTargetObjectName());
}
@Override
public void onFailure(GetSymlinkRequest request, ClientException clientException,
ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();
相關文檔
關於軟連結的完整範例程式碼,請參見GitHub樣本。
關於建立軟連結的API介面說明,請參見PutSymlink。
關於擷取軟連結的API介面說明,請參見GetSymlink。
關於初始化OSSClient,請參見如何初始化Android端OSSClient執行個體。