2016-05-16 13 views
0

私はS3BotoStorageを私のDEFAULT_FILE_STORAGEとして私のdjangoアプリで使っています。したがって、私のアプリケーションにアップロードするすべてのファイルはS3バケットにアップロードされます。 SSE-Cを使用してファイルを暗号化したかったので、AWSのhereのドキュメントに従っています。私は私のsettings.pyS3ヘッダをDjangoに渡す正しい方法は何ですか?

# settings.py 
AWS_S3_ENCRYPTION = True 
key = ... 
key_md5 = ... 
AWS_HEADERS = { 
    'x-amz-server-side-encryption-customer-algorithm': 'AES256', 
    'x-amz-server-side-encryption-customer-key': key, 
    'x-amz-server-side-encryption-customer-key-MD5': key_md5, 
} 

に次の行を追加しました。しかし、すぐに、私はこれらのヘッダを追加すると、私は次のエラーを受信し始めます。

[Error 104] Connection Reset by Peer 

ファイルのアップロードはヘッダーなしで正常に動作しています。

私はなぜこれが起こっていないのですか?

詳細が必要な場合は教えてください。

+0

APIへの第三者呼び出しを使用しているので、コードベース引数が無視され、無視されるため、コードベース引数をチェックして使用する必要があります。ソースで「暗号化」を検索する: https://github.com/jschneier/django-storages/blob/master/storages/backends/s3boto.py、パラメータを有効にする必要があるようです。 – mootmoot

+0

@mootmootそれを指摘していただきありがとうございますが、私はすでにあなたが話しているそのパラメータを有効にしています。私は質問の説明を更新しました。 – Darwesh

+0

OWN暗号化キーを使用するかS3暗号化を使用するかを明確にしてください。 – mootmoot

答えて

1

短い回答:使用しているラッパーは、古くなったboto2の実装のためにカスタム暗号化キーをサポートしていません。

長い回答: ここには、S3BotoStorageの出典があります。ここでは、how boto2 saving fileのパズルが来る。ヘッダーはどこにありますか?だから私は彼らがこのようなことを示唆しているのを見る

AWS_HEADERS = { 
    'Expires': 'Thu, 15 Apr 2010 20:00:00 GMT', 
    'Cache-Control': 'max-age=86400', 
} 

botoに渡す暗号化ヘッダーの例はありません。指定したヘッダーは、S3BotoStorageラッパーではなく、REST API用です。したがって、これを使用して暗号化アルゴリズムのAWS_HEADERSを設定することを忘れて、カスタム暗号化キーを与えてください。

混乱している部分は、boto2では、S3オブジェクト名は呼び出しキーです(boto3では、明示的にkey_nameを呼び出す)。これは暗号化キーとは関係ありません。

関連する問題