問題タブ [django-storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - s3boto で複数の S3 バケットを指す
settings.py
私は持っています:
これは私の S3 バケットを指しており、static.mysite.com
実行すると正常に動作しmanage.py collectstatic
、すべての静的ファイルがバケットにアップロードされます。ただし、さまざまな目的で使用し、Web サイトの特定の領域で使用したい別のバケットがあります。たとえば、次のようなモデルがある場合です。
Image.save()
が呼び出されると、ファイルは の S3 バケットにアップロードされますが、別の S3 バケットを指すようAWS_STORAGE_BUCKET_NAME
にしたいと考えています。Image.save()
これを行うクリーンな方法はありますか?私は実行時に変更したくありませんしsettings.py
、django の重要な原則に違反する慣行を実装したくもありません。つまり、プラグイン可能で簡単に変更できるバックエンド ストレージを使用することです。
django - Django - storages.backends のインポート中にエラーが発生しました
カスタム ストレージ バックエンドを作成しました。ファイルが呼び出され、次storages.py
のアプリに配置されcore
ます。
にはsettings.py
、次のものがあります。
やろうとするとpython manage.py collectstatic
、次のエラーが表示されます。
そして、実行python manage.py shell
して同じものをインポートしようとすると:
私が間違っていることは何か分かりますか?
django - Django: 変更された静的ファイルのみを収集する
Amazon s3 を使用してすべての静的ファイルを (django-storages 経由で) 保存していますが、GET よりも PUT の方がはるかに多くの費用がかかります。を実行するmanage.py collectstatic
と、Django はすべての静的ファイルに対して PUT を実行します。ファイルがまったく変更されていないかどうかを最初に確認する方法はありますか?
django - djangoアプリでdjango-storagesを使用しているときに、Amazon s3に保存されている画像の304を取得する方法は?
ユーザーがアップロードした画像を Amazon の S3 に保存し始めました。収納の悩みが解消されたので良かったです。ただし、ブラウザに画像をキャッシュさせることに関しては苦労しています。
私はジャンゴストレージを使用しています。彼らのドキュメントでは、設定で AWS_HEADER 変数を設定することにより、画像のリクエストヘッダーに物を置くことができると指定しています。私はそれをやっていますが、結果は得られません。
基本的に、アプリが画像を要求すると、毎回 200 が返されます。ARG ...ブラウザで画像に直接アクセスすると(リンクをコピーして新しいウィンドウに貼り付けます)、その後は毎回200と304が表示されます。
毎回画像を再ダウンロードするのでとてもイライラします。一部のページには最大 25 個の小さなサムネイルがあり、ページがリロードされるたびにすべてが再ダウンロードされます。
djangos staticfiles を使用して静的ファイルを提供していますが、正常に動作しています。ファイルがキャッシュされた後、200 を取得し、次に 304 を取得します。
これがsettings.pyの私のAWS設定です
アプリが画像をリクエストするときのリクエスト ヘッダーとレスポンス ヘッダーは次のとおりです (機密情報と思われる部分を「*」に置き換えました)。
画像へのリンクをコピーして貼り付けて手動で画像を要求するときの要求/応答ヘッダーは次のとおりです。
「If-None-Match:」や「If-Modified-Since:」など、いくつかの違いがあることがわかります。それらを設定すれば、思い通りに動作するはずだと思います。
これを行う簡単な方法はありますか?
助けてくれてありがとう!
編集 1: 私はこの記事を読みましたが、うまく翻訳できませんでした.. http://coder.cl/2012/01/django-and-amazon-s3/comment-page-1/
django - django-storagesとs3botoバックエンドを使用して、ブラウザが画像をキャッシュするように、画像のヘッダーをリクエストするためにキャッシュ情報を追加するにはどうすればよいですか?
s3バックエンドではなく、s3botoバックエンドを使用しています。
django-storagesのドキュメントでは、settings.pyファイルでAWS_HEADERS変数を指定するように指示されています。
AWS_HEADERS(オプション)
ストレージの各ファイルとともに送信されるヘッダーを設定する場合:
これは私にはうまくいきません。
これが私のモデルです:
これは私が画像を持っている私のテンプレートにあるものです...
リクエストヘッダーとレスポンスヘッダーは次のとおりです。
画像へのパスをアドレスバーに貼り付けると、画像がキャッシュされ、304が返されます...これらの要求ヘッダーと応答ヘッダーは次のとおりです。
django - Django ストレージと boto と REST
こんばんは、
Django-Storages が必要な理由について少し混乱していますか? ( http://django-storages.readthedocs.org/en/latest/index.html ) 基本的な Django ストレージ コードを引き続き使用するためのレイヤーを提供するだけで、Amazon S3 を使用しますか? もしそうなら、それがBotoを使用する理由ですか?
DevPay と Amazon S3 を使用したいと考えています。それで
s3boto
動作しますか?devpay が S3 で動作するには、リクエストが REST である必要があることを読みました。ビデオのストリーミングや画像の URL の取得は DevPay で機能しますか? (モバイルと Web ブラウザーの両方で。)
ありがとう!
django - リモートストレージを使用したdjango-compressorの設定(django-storage-amazon s3)
私のシナリオ
django-storageを使用して、AmazonS3経由でファイルを提供しています。これは、。/ manage.py collectstaticを実行すると、ファイルがローカルファイルシステムではなく、amazonのバケットに保存されることを意味します。
ファイルを圧縮するには、次のようにします。 "./manage.py compress"これにより、次のエラーが発生します。
エラー:レンダリング中にエラーが発生しました:[Errno 2]そのようなファイルまたはディレクトリはありません:u'/home/user/project/static/less/bootstrap.less'
ファイルが私のローカルファイルシステムにないので。
「DjangoCompressorがファイルを処理する方法により、ローカルファイルシステムキャッシュで使用できるようにするには、ファイルを({%compress%}ブロックで)処理する必要があります。」 http://django_compressor.readthedocs.org/en/最新/リモートストレージ/
質問
django-compressをdjango-storage(amazon s3)で機能させるにはどうすればよいですか?
私がこれまでにやろうとしたこと
collectstatic保存ファイルをローカルとS3の両方に作成します。django-compressorページのドキュメントで言及されているので、それを行うためのいくつかの良い方法があるはずです。どのように?
構成
python - django-storages と Amazon S3 を使用して Django プロジェクトをセットアップする方法はありますが、静的ファイルとメディア ファイルのフォルダーは異なりますか?
STATIC_ROOT
アプリの静的ファイル ( ) とユーザーがアップロードしたファイル ( )を格納するためにサーバー ファイルシステムを使用していた Django プロジェクトを構成していますMEDIA_ROOT
。
Amazon の S3 ですべてのコンテンツをホストする必要があるため、このためのバケットを作成しました。ストレージ バックエンドを使用django-storages
して、boto
収集した統計情報を S3 バケットにアップロードすることができました。
次に、問題が発生しました。MEDIA_ROOT
とSTATIC_ROOT
がバケット内で使用されていないため、バケット ルートには静的ファイルとユーザーがアップロードしたパスの両方が含まれています。
それで、私は設定することができました:
テンプレートでこれらの設定を使用しますが、django-storages
.
これはどのように行うことができますか?
ありがとう!
django - カスタム S3BotoStorage クラスのコンストラクタ エラー
S3BotoStorage に基づいて新しいカスタム ストレージ クラスを作成しようとしていますが、次のコードでこのエラーが発生し続けます。
エラー:
私の答えは、s3botoで複数の S3 バケットを指しているということに基づいています。通常でも、次のことができます。
そしてそれは動作します。(そして、コンストラクターに引数を渡します)
django - Django モデルの認証済みユーザーの情報にアクセスする
別のモデルでユーザーのデータにアクセスするにはどうすればよいのでしょうか? たとえば、これが私の現在の状況です。
- ユーザーは会社へのforeignKeyを持っています。したがって、ユーザーは会社に関連付けられます。
- ファイルアップロードページを実装しました。このページでは、ファイルを Amazon S3 にアップロードするカスタム ストレージ ソリューションを使用します。(S3BotoStorage に基づいています)。
- このコンストラクター内で、会社がユーザーにリンクされているこの会社に関連付けられているbucket_nameにアクセスしたいと考えています。アップロード ページを使用するには、すべてのユーザーがログインする必要があります。
- つまり、ログインしたユーザーは会社へのforeignKeyを持ち、会社はbucket_nameを持っています。ログインしたユーザーは、ファイルのアップロード ページにいます。
これはビューです:
これは画像モデルです(ファイルモデルなど)
これは、settings.py で default_storage として設定したストレージ モデルです。
from またはテンプレートから、引数を渡して後で取得できますか? この情報をモデル内で直接取得できますか? これを行う方法についてのアイデアはありますか?
ありがとう!
編集: ユーザーにはリンク先の会社への ForeignKey が含まれ、その会社には問題のバケットが含まれるため、これはユーザーと関係があります...
編集 #2: form_save でself.object.user = self.request.userを試してみましたが、それを超えて UserProfile クラスで User を拡張したときに追加したフィールドにアクセスするにはどうすればよいですか? 例えば:
したがって、Company はユーザー拡張プロファイル内のforeign_key であり、company にはバケット フィールドが含まれています。