24 lines
563 B
Python
24 lines
563 B
Python
|
import os
|
||
|
|
||
|
from nexrad.s3 import S3Bucket
|
||
|
|
||
|
class Archive():
|
||
|
path: str
|
||
|
bucket: S3Bucket
|
||
|
|
||
|
def __init__(self, path: str, bucket: S3Bucket):
|
||
|
self.path = path
|
||
|
self.bucket = bucket
|
||
|
|
||
|
def is_archived(self, key: str):
|
||
|
return os.path.exists(self.path + '/' + key)
|
||
|
|
||
|
def archive(self, key: str):
|
||
|
path = self.path + '/' + key
|
||
|
parent = os.path.dirname(path)
|
||
|
|
||
|
os.makedirs(parent, exist_ok=True)
|
||
|
|
||
|
with open(path, 'wb') as fh:
|
||
|
self.bucket.s3.download_fileobj(self.bucket.name, key, fh)
|