2017-04-03 6 views
0

私はS3 objectが公開されていません。そのリンクをクリックすると、<code>Access Denied</code>エラーが発生します。Node.jsのhttp.get()で公開パーミッションのないS3オブジェクトにアクセスできるのはなぜですか?

私は私のMac上でローカルノードサーバー上で次のスクリプトを実行する場合は、私はファイルダウンロードすることができるよ -

var s3file = fs.createWriteStream("s3posts.json.gz"); 
http.get("http://s3.amazonaws.com/cloudfront.s3post.cf/posts.json.gz", function(response) { 
    response.pipe(s3file); 
}); 

を私は私のバケットとオブジェクト構成のすべてを行ってきました。オブジェクトに公にアクセスすることはできません。

AWSのポリシーがデフォルトでプライベートであり、明示的に許可を与えていない場合、ブラウザで利用できないのにオブジェクトをダウンロードできるのはなぜですか?

オブジェクトがダウンロードされないようにするにはどうすればよいですか?

答えて

2

あなたは実際にそのスクリプトによってダウンロードされたものを見たことがありますか?私は私のマシン上で自分のノードの例を実行すると

、ここs3posts.json.gzの内容は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<Error> 
<Code>AccessDenied</Code><Message>Access Denied</Message> 
<RequestId>946B9510D519E44B</RequestId> 
<HostId>eMlB8tG95Ur5fjIHo/NxfI6Ucjs/b4vcMNKYiZPZk94Db6BgrekTRVoaJTccxmQqN1eb91O673A=</HostId> 
</Error> 

それは確かにそのそのファイルの実際の内容でない限りすべてが、罰金ているようですあなたは保護したい。

+0

ありがとうございました。圧縮されたJSON S3ファイルをダウンロードして解凍するという全く新しい問題を発見しましたが、これは問題のトラブルシューティングを開始するのに役立ちます。 –

関連する問題