add acl support for gcs

This commit is contained in:
rhoboro 2018-04-02 15:36:47 +09:00
parent 6c3970e672
commit 8e8994c6b5
3 changed files with 8 additions and 1 deletions

View File

@ -207,6 +207,8 @@ class GCSFilesStore(object):
GCS_PROJECT_ID = None
CACHE_CONTROL = 'max-age=172800'
POLICY = 'projectPrivate' # Overriden from settings.FILES_STORE_GCS_ACL in
# FilesPipeline.from_settings.
def __init__(self, uri):
from google.cloud import storage
@ -239,7 +241,8 @@ class GCSFilesStore(object):
return threads.deferToThread(
blob.upload_from_string,
data=buf.getvalue(),
content_type=self._get_content_type(headers)
content_type=self._get_content_type(headers),
predefined_acl=self.POLICY
)
@ -314,6 +317,7 @@ class FilesPipeline(MediaPipeline):
gcs_store = cls.STORE_SCHEMES['gs']
gcs_store.GCS_PROJECT_ID = settings['GCS_PROJECT_ID']
gcs_store.POLICY = settings['FILES_STORE_GCS_ACL']
store_uri = settings['FILES_STORE']
return cls(store_uri, settings=settings)

View File

@ -93,6 +93,7 @@ class ImagesPipeline(FilesPipeline):
gcs_store = cls.STORE_SCHEMES['gs']
gcs_store.GCS_PROJECT_ID = settings['GCS_PROJECT_ID']
gcs_store.POLICY = settings['IMAGES_STORE_GCS_ACL']
store_uri = settings['IMAGES_STORE']
return cls(store_uri, settings=settings)

View File

@ -159,6 +159,7 @@ FEED_EXPORTERS_BASE = {
FEED_EXPORT_INDENT = 0
FILES_STORE_S3_ACL = 'private'
FILES_STORE_GCS_ACL = 'projectPrivate'
FTP_USER = 'anonymous'
FTP_PASSWORD = 'guest'
@ -181,6 +182,7 @@ HTTPPROXY_ENABLED = True
HTTPPROXY_AUTH_ENCODING = 'latin-1'
IMAGES_STORE_S3_ACL = 'private'
IMAGES_STORE_GCS_ACL = 'projectPrivate'
ITEM_PROCESSOR = 'scrapy.pipelines.ItemPipelineManager'