0

ファイルを s3 バケットにアップロードしようとし続けます。ただし、ファイルが公開されることはありません。バケット内のファイル/フォルダを(アップロードごとに)表示できるように手動で公開する必要があります。

Android ファイル (ビットマップ) をデフォルトのアクセス許可でアップロードして、表示のために公開する方法はありますか。可能であれば、プログラムでこれを行うことをお勧めします。私はs3のドキュメントをチェックしましたが、役立つものは何も見つかりませんでした.

4

2 に答える 2

10

はい、 TransferUtilityを使用している人にとっては、以下の方法を使用して、Android で TransferUtility を使用して公開読み取り可能な形式でファイルをアップロードするのは非常に簡単です。

transferUtility.upload(String bucketName,String key,File file,CannedAccessControlList cannedAcl)

例:

transferUtility.upload("MY_BUCKET_NAME","FileName",your_file,CannedAccessControlList.PublicRead);
于 2016-10-07T07:18:06.857 に答える
5

デフォルトでバケット内のすべてのオブジェクトを公開するには、この質問またはこの質問への回答をご覧ください。

Android 経由でファイルをアップロードするときに各ファイルのパブリック アクセスを指定するには、次のPutObjectRequestように ACL を設定します。

PutObjectRequest putObjectRequest = new PutObjectRequest()
    .withCannedAcl(CannedAccessControlList.PublicRead)

TransferUtility現時点では、ACL をワンステップで設定できるようには見えません: https://github.com/aws/aws-sdk-android/issues/63

したがって、ファイルをアップロードした後TransferUtility、次の操作を行う必要があります。

s3client.setObjectAcl(bucketName, keyName, CannedAccessControlList.PublicRead);
于 2016-03-24T02:19:05.067 に答える