シンボリックリンクはWindowsのファイルショートカットのように機能し、Object Storage Service (OSS) の関連オブジェクトにすばやくアクセスできます。
使用上の注意
このトピックのサンプルコードを実行する前に、カスタムドメイン名やSecurity Token Service (STS) などの方法を使用してOSSClientインスタンスを作成する必要があります。 詳細については、「初期化」をご参照ください。
シンボリックリンクの作成
次のサンプルコードは、シンボリックリンクを作成する方法の例を示しています。
// リクエストを作成します。
PutSymlinkRequest putSymlink=新しいPutSymlinkRequest();
// バケットの名前を指定します。
putSymlink.setBucketName("yourBucketName");
// シンボリックリンクの名前を指定します。
putSymlink.setObjectKey("yourSymLink");
// シンボリックリンクを指すオブジェクトの名前を指定します。
putSymlink.setTargetObjectName("yourTargetObjectName");
ObjectMetadata metadata = new ObjectMetadata();
// 同じ名前のオブジェクトを上書きするかどうかを指定します。 この例では、このパラメーターはtrueに設定されています。これは、同じ名前のオブジェクトを上書きできないことを示します。
// metadata.setHeader("x-oss-forbid-overwrite", "true");
// オブジェクトのアクセス制御リスト (ACL) を指定します。 この例では、ACLはprivateに設定されています。
// metadata.setHeader("x-oss-object-acl", "private");
// オブジェクトのストレージクラスを指定します。 この例では、ストレージクラスはStandardに設定されています。
// metadata.setHeader("x-oss-storage-class", "Standard");
putSymlink.setMetadata (メタデータ);
OSSAsyncTask task = oss.asyncPutSymlink(putSymlink, new OSSCompletedCallback<PutSymlinkRequest, PutSymlinkResult>() {
@オーバーライド
public void onSuccess(PutSymlinkRequestリクエスト、PutSymlinkResult結果) {
Log.d("PutSymlink" 、"PutSymlink success");
}
@オーバーライド
public void onFailure(PutSymlinkRequestリクエスト, 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=新しいGetSymlinkRequest();
// バケットの名前を指定します。
getSymlink.setBucketName("yourBucketName");
// シンボリックリンクの名前を指定します。
getSymlink.setObjectKey("yourSymLink");
OSSAsyncTask task = oss.asyncGetSymlink(getSymlink, new OSSCompletedCallback<GetSymlinkRequest,
GetSymlinkResult>() {
@オーバーライド
public void onSuccess(GetSymlinkRequestリクエスト、GetSymlinkResult結果) {
OSSLog.logInfo("targ::" + result.getTargetObjectName());
}
@オーバーライド
public void onFailure(GetSymlinkRequestリクエスト, ClientException clientException,
ServiceException serviceException) {
OSSLog.logError("error: " + serviceException.getRawMessage());
}
});
task.waitUntilFinished();
参考資料
シンボリックリンクの管理に使用する完全なサンプルコードについては、『GitHub』をご参照ください。
シンボリックリンクを作成するために呼び出すことができるAPI操作の詳細については、「PutSymlink」をご参照ください。
シンボリックリンクを照会するために呼び出すことができるAPI操作の詳細については、「GetSymlink」をご参照ください。
OSSClientインスタンスを初期化する方法の詳細については、「初期化」をご参照ください。