From 9528ad6a1dbe205644431bfb0e02b1e2ae8449bb Mon Sep 17 00:00:00 2001 From: Jeep Kiddee Date: Mon, 1 Oct 2018 18:19:03 +0700 Subject: [PATCH] Fix dvc not loading AWS settings from environment variables --- dvc/remote/s3.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/dvc/remote/s3.py b/dvc/remote/s3.py index d66ed7fa3..d4e44cc61 100644 --- a/dvc/remote/s3.py +++ b/dvc/remote/s3.py @@ -57,19 +57,13 @@ class RemoteS3(RemoteBase): creds_conf = configobj.ConfigObj(credentialpath) creds = creds_conf.get(self.profile, {}) else: - creds = {} + creds = self._get_aws_config_from_env() self.creds = creds self.region = creds.get('region', self.region) self.aws_access_key_id = creds.get('aws_access_key_id', None) self.aws_secret_access_key = creds.get('aws_secret_access_key', None) - self.region = os.getenv('AWS_DEFAULT_REGION', self.region) - self.aws_access_key_id = os.getenv('AWS_ACCESS_KEY_ID', - self.aws_access_key_id) - self.aws_secret_access_key = os.getenv('AWS_SECRET_ACCESS_KEY', - self.aws_secret_access_key) - @property def bucket(self): return urlparse(self.url).netloc @@ -89,6 +83,14 @@ class RemoteS3(RemoteBase): region_name=self.region) return session.client('s3', endpoint_url=self.endpoint_url) + def _get_aws_config_from_env(self): + creds = { + 'region': os.getenv('AWS_DEFAULT_REGION'), + 'aws_access_key_id': os.getenv('AWS_ACCESS_KEY_ID'), + 'aws_secret_access_key': os.getenv('AWS_SECRET_ACCESS_KEY'), + } + return {k: v for k, v in creds.items() if v is not None} + def get_etag(self, bucket, key): try: obj = self.s3.head_object(Bucket=bucket, Key=key)