Files
dvc/dvc/dependency/gs.py
T
Ruslan Kuprieiev 2bbefc91ef deps: introduce s3/gs dependencies
E.g.:
dvc run -d gs://bucket/file -o file gsutil cp gs://bucket/file file
dvc run -d s3://bucket/file -o file aws s3 cp s3://bucket/file file

Etags are used to track deps in both cases.

Signed-off-by: Ruslan Kuprieiev <[email protected]>
2018-05-24 18:24:18 +03:00

24 lines
543 B
Python

from google.cloud import storage as gc
try:
from urlparse import urlparse
except ImportError:
from urllib.parse import urlparse
from dvc.dependency.s3 import DependencyS3
from dvc.cloud.gcp import DataCloudGCP
class DependencyGS(DependencyS3):
REGEX = DataCloudGCP.REGEX
def get_etag(self):
o = urlparse(self.path)
bucket_name = o.netloc
key = o.path.lstrip('/')
client = gc.Client()
bucket = client.bucket(bucket_name)
blob = bucket.get_blob(key)
return blob.etag