全部產品
Search
文件中心

Object Storage Service:Android管理軟連結

更新時間:Feb 28, 2024

軟連結功能用於便捷訪問Bucket內的常用Object。設定軟連結後,您可以使用類似於Windows的捷徑,通過軟連結檔案開啟Object。

注意事項

建立軟連結

以下代碼用於建立軟連結:

// 構建請求。
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();

相關文檔