Add flag for storage privacy

This commit is contained in:
Logan Williams
2022-03-18 09:53:21 +01:00
parent d611aa1e14
commit 050b04e31d
2 changed files with 8 additions and 1 deletions

View File

@@ -149,6 +149,8 @@ def main():
description='Automatically archive social media videos from a Google Sheets document')
parser.add_argument('--sheet', action='store', dest='sheet', help='the name of the google sheets document', required=True)
parser.add_argument('--header', action='store', dest='header', default=1, type=int, help='1-based index for the header row')
parser.add_argument('--private', action='store_true', help='Store content without public access permission')
for k, v in GWorksheet.COLUMN_NAMES.items():
parser.add_argument(f'--col-{k}', action='store', dest=k, default=v, help=f'the name of the column to fill with {k} (defaults={v})')

View File

@@ -11,6 +11,7 @@ class S3Config:
key: str
secret: str
folder: str = ""
private: bool = False
class S3Storage(Storage):
@@ -45,5 +46,9 @@ class S3Storage(Storage):
return False
def uploadf(self, file, key, **kwargs):
extra_args = kwargs.get("extra_args", {'ACL': 'public-read'})
if self.private:
extra_args = kwargs.get("extra_args", {})
else:
extra_args = kwargs.get("extra_args", {'ACL': 'public-read'})
self.s3.upload_fileobj(file, Bucket=self.bucket, Key=self._get_path(key), ExtraArgs=extra_args)