オブジェクトアクセス制御リスト (ACL) には、プライベート、パブリック読み取り、およびパブリック読み取り書き込みが含まれます。 このトピックでは、オブジェクトのACLを取得する方法について説明します。
使用上の注意
このトピックのサンプルコードを実行する前に、カスタムドメイン名やSecurity Token Service (STS) などの方法を使用してOSSClientインスタンスを作成する必要があります。 詳細については、「初期化」をご参照ください。
オブジェクトACL
次の表に、3種類のオブジェクトACLを示します。
オブジェクトACL | 説明 |
プライベート | オブジェクトに対する読み取りおよび書き込み権限を持つのは、オブジェクト所有者と許可されたユーザーのみです。 |
公開読み取り | オブジェクトに対する読み取りおよび書き込み権限を持つのは、オブジェクト所有者と許可されたユーザーのみです。 他のユーザーには、オブジェクトに対する読み取り権限のみがあります。 オブジェクトACLをこの値に設定する場合は注意してください。 |
パブリック読み取り /書き込み | すべてのユーザーがオブジェクトに対する読み取りおよび書き込み権限を持っています。 オブジェクトACLをこの値に設定する場合は注意してください。 |
例
次のサンプルコードは、examplebucketという名前のバケットでexampleobject.txtという名前のオブジェクトのACLを取得する方法の例を示しています。
// バケットの名前とオブジェクトの完全パスを指定します。 この例では、バケットの名前はexamplebucketで、オブジェクトの完全パスはexampledir/exampleobject.txtです。 バケット名をフルパスに含めないでください。
GetObjectACLRequest request = new GetObjectACLRequest("examplebucket", "exampledir/exampleobject.txt");
// OSS SDK for Androidを使用してオブジェクトのACLを設定することはできません。 オブジェクトのACLは、OSS SDK for Androidを使用してのみ取得できます。
// 次のサンプルコードは、オブジェクトのACLを照会する方法の例を示しています。oss.asyncGetObjectACL(request, new OSSCompletedCallback<GetObjectACLRequest, GetObjectACLResult>() {
@オーバーライド
public void onSuccess(GetObjectACLRequestリクエスト, GetObjectACLResult結果) {
Log.d("GetObjectACL" 、"Success!");
Log.d("ObjectAcl", result.getObjectACL());
Log.d("Owner", result.getObjectOwner());
Log.d("ID", result.getObjectOwnerID());
}
@オーバーライド
public void onFailure(GetObjectACLRequest 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());
}
}
});
参考資料
オブジェクトのACLを照会するために呼び出すAPI操作の詳細については、「GetObjectACL」をご参照ください。
OSSClientインスタンスを初期化する方法の詳細については、「初期化」をご参照ください。