2012-07-21 5 views
18

サムネイルURLにはparamsがあります。なぜ私は分からない。私たちが使っているサムールやサムネイルやボットストレージに関係していると思います。 URLから追加のパラメータを削除するにはどうすればよいですか? 彼らはboto/s3またはsorlから来ていますか? どのようにデバッグするのか分かりません。URLパラメータに署名/有効期限/アクセスキーIDが表示されます。 Django/Boto/S3

+0

ここにURLの例を貼り付けることはできますか? – Keshi

+0

ここに例があります:https://eniyiyorumlar.s3.amazonaws.com/media/product_photos/yuruyus-bandi/dynamic-v100.jpg?Signature=4C45X28vHf07rkVXj4hvqxAxTeg%3D&Expires=1342920217&AWSAccessKeyId=AKIAJIDT4T4CVUPDP7RQ - それはボトムから来ています、私はしませんsorlを使用すると、同じ出力が得られます。同じ質問があります – Intenex

答えて

5

追加される余分なパラメータは、Query String Authenticationを実装するためのものです。これにより、S3に格納されているプラ​​イベートリソースへのURLの事前署名が可能になります。誰かが事前署名されたURLを持っていれば(そして期限切れになっていない限り)、公開されていなくてもこれらのリソースにアクセスできます。

余分なパラメータがないと、これらのプライベートS3リソースにパブリックアクセスを提供する方法がありません。

+0

なぜS3は非公開ですか?どのように公開するのですか? – LILI

+0

S3のすべてのコンテンツは、デフォルトではプライベートです。 botoのKeyオブジェクトのmake_public()メソッドを使用して公開可能に変更するか、GUIを使用する場合はAWS Consoleを使用できます。 – garnaat

+0

Boto3は、プライベートであるかどうかを知りません。デフォルトでは、どちらの方法でもアクセスできるようにURLに署名します。公開されている場合は、署名がURLから除外されるように設定を適用することができます – r3m0t

58

用途:偽AWS_QUERYSTRING_AUTH =私のために

+18

この回答は有用であるためには詳細が必要です。 – rjsvaljean

+4

これは文書化されていませんが、これは本当に必要なものです。あなたのバケットが(あなたがメディアに必要な)すべての人に公開されている場合、認証パラメータが削除されます。 – Alper

2

作品: AWS_QUERYSTRING_AUTH = Falseを使用して

このhttps://github.com/mstarinteractive/django-s3storage

from myapp.s3storage import S3BotoStorage 
from django.contrib.staticfiles.storage import CachedFilesMixin 


class CachedStaticS3BotoStorage(CachedFilesMixin, S3BotoStorage): 

    """Extends S3BotoStorage to save static files with hashed filenames.""" 
    pass 
StaticRootS3BotoStorage = lambda: CachedStaticS3BotoStorage(location='static') 
0

それは奇妙な行動です: Googleドキュメントのプレビューアが仕事とせずにプレビューが表示されますbotoが署名を付加する場合、プレビューが利用できないと言います。

<iframe src="{% trans "https://docs.google.com/viewer?embedded=true&amp;url=" %}{{ document.file.url }}" width="451" height="390" style="border: none;"></iframe>

私は何かが欠けている必要があります。

関連する問題