0

apache-libcloud と django-storages を介して、Google クラウド ストレージを使用するように django アプリケーションをセットアップしました。

私のLIBCLOUD_PROVIDER見た目はこんな感じ

LIBCLOUD_PROVIDERS = {
    'default': {
        'type': 'libcloud.storage.types.Provider.GOOGLE_STORAGE',
        'bucket': 'bucket-name',
        'user': os.environ.get('GCE_STORAGE_KEY'),
        'key': os.environ.get('GCE_STORAGE_SECRET')
    },
}

STATICFILES_STORAGE = 'etc.utilities.storage.GSStaticBucket'

実行すると正常に動作./manage.py collectstaticし、ファイルが正常にアップロードされるようです。しかし、ファイルのアクセス制御を制御する方法を探しています。現在、すべてのファイルを非公開としてアップロードし、代わりにアップロードして一般にアクセスできるようにしたいと考えています。

ここに画像の説明を入力

しかし、上のスクリーンショットからわかるように。アップロードされたファイルに「一般公開」のフラグが付けられていない

誰かアドバイスしてもらえますか?

4

1 に答える 1

1

バケットにデフォルトのオブジェクト アクセス制御を設定して、新しく作成されたオブジェクトへのパブリック読み取りアクセスを許可できます。

Apache Libcloudでは、リクエストで追加のヘッダーを送信できますx-goog-acl。アップロード リクエストにヘッダーを追加することで、同じ動作を行うことができます。彼らのドキュメントにはそれが示されていませんが、 S3の例に似ています。

ただし、django-storages の libcloud のラッピングでは、そのデータの提供が許可されていないように見えるため、バケットのデフォルトのオブジェクト アクセス制御に依存する必要がある可能性があります。

于 2015-12-14T06:38:07.150 に答える