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