diff options
| author | adamhrv <adam@ahprojects.com> | 2018-12-16 01:03:14 +0100 |
|---|---|---|
| committer | adamhrv <adam@ahprojects.com> | 2018-12-16 01:03:14 +0100 |
| commit | 10f467b64e3be528ac246d5cf664d675aca3e7f3 (patch) | |
| tree | 02face1862f185796c3ddd08a274940626e31ff9 /builder/s3.py | |
| parent | a52dc6f8edc4e5d00e7c05e34c6c6fe6252ec2bd (diff) | |
| parent | f91c6d8e870bd3b2c69a130e4b1ed8f6be250b92 (diff) | |
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'builder/s3.py')
| -rw-r--r-- | builder/s3.py | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/builder/s3.py b/builder/s3.py deleted file mode 100644 index 41ecdf61..00000000 --- a/builder/s3.py +++ /dev/null @@ -1,61 +0,0 @@ -import os -import glob -import boto3 -from paths import * - -session = boto3.session.Session() - -s3_client = session.client( - service_name='s3', - aws_access_key_id=os.getenv('S3_KEY'), - aws_secret_access_key=os.getenv('S3_SECRET'), - endpoint_url=os.getenv('S3_ENDPOINT'), - region_name=os.getenv('S3_REGION'), -) - -def sync_directory(base_fn, s3_path, metadata): - fns = {} - for fn in glob.glob(os.path.join(base_fn, 'assets/*')): - fns[os.path.basename(fn)] = True - - if not metadata['sync']: - return - - remote_path = s3_path + metadata['url'] - - directory = s3_client.list_objects(Bucket=os.getenv('S3_BUCKET'), Prefix=remote_path) - prefixes = [] - - if 'Contents' in directory: - for obj in directory['Contents']: - s3_fn = obj['Key'] - fn = os.path.basename(s3_fn) - local_fn = os.path.join(base_fn, 'assets', fn) - if fn in fns: - del fns[fn] - if obj['LastModified'].timestamp() < os.path.getmtime(os.path.join(local_fn)): - print("s3 update {}".format(s3_fn)) - s3_client.upload_file( - local_fn, - os.getenv('S3_BUCKET'), - s3_fn, - ExtraArgs={ 'ACL': 'public-read' }) - else: - print("s3 delete {}".format(s3_fn)) - response = s3_client.delete_object( - Bucket=os.getenv('S3_BUCKET'), - Key=s3_fn, - ) - - for fn in fns: - local_fn = os.path.join(base_fn, 'assets', fn) - s3_fn = os.path.join(remote_path, 'assets', fn) - print("s3 create {}".format(s3_fn)) - s3_client.upload_file( - local_fn, - os.getenv('S3_BUCKET'), - s3_fn, - ExtraArgs={ 'ACL': 'public-read' }) - -def make_s3_path(s3_dir, metadata_path): - return "{}/{}/{}{}".format(os.getenv('S3_ENDPOINT'), os.getenv('S3_BUCKET'), s3_dir, metadata_path) |
