0

クラウドサーバーにファイルを保存するためにAmazonS3sdkに取り組んでいます。これを実装するために、codeplexのthreesharp(http://threesharp.codeplex.com)を使用しています。サーバーにファイルを正常にアップロードしたので、ダウンロードする必要があります。これは、次のURLでダウンロードする必要があります。例:https ://s3.amazonaws.com/MyBucket/Filename

アップロードしたファイルをダウンロードできますが、空白で表示されます。テキストファイルをアップロードすると、画像や他のファイルと同じように、ダウンロード後に何も表示されません。オブジェクトを公に読み取り可能にする必要があることをAmazonS3のドキュメントで読みました(http://docs.amazonwebservices.com/AmazonS3/latest/gsg/OpeningAnObject.html)これを実現する方法がわかりません。ダウンロード機能を実行するにはどうすればよいですか?Threesharpプロジェクトはデスクトップベースであり、私はWebベースのアプリケーションに取り組んでいます

4

2 に答える 2

4

ファイルのアップロード中に適切なACLを設定します。

例えば。:

AmazonS3 client = GetS3Client();
SetACLRequest request = new SetACLRequest();
request.BucketName = "my-new-bucket";
request.Key        = "hello.txt";
request.CannedACL  = S3CannedACL.PublicRead;
client.SetACL(request)

Amazon S3は、バケットとオブジェクトへのアクセスを管理するための豊富なメカニズムのセットを提供します。

詳細については、こちらを確認してください:AmazonS3Bucketパブリックアクセスに関する考慮事項

また、Amazon S3用のエクスプローラー(AmazonS3用のCloudBerryExplorerなど)をダウンロードして、バケットに適切な権限を割り当てることができます。

CloudBerry Explorer for Amazon S3:データアクセス機能:

  • バケットポリシーエディタ バケットとオブジェクトへのアクセスを管理するための条件付きルールを作成および編集します。

  • ACL Editor 「アクセス制御リスト」を設定して、任意のオブジェクトへのアクセス許可を管理します。ACLは、S3バケット内のすべての「子オブジェクト」にも適用されます。

また、AmazonS3管理コンソールを使用して同じことを行うことができます。

例えば。

于 2012-12-19T10:34:13.070 に答える
1

次のことを試しましたか?

  1. オブジェクトを右クリックして、[公開]をクリックします
  2. オブジェクトを選択し、[権限]セクションで[開く/ダウンロードしますか?]をオンにします。

編集:

ここをご覧になりましたか: Amazons3APIを介したアップロード時にファイルに権限を設定する方法

そしてここ:

S3でバケットのACLを設定するにはどうすればよいですか?

それはあなたを正しい方向に導くかもしれません

于 2012-12-19T10:31:27.580 に答える