|
@@ -16,14 +16,18 @@ class S3Storage(BaseStorage):
|
|
|
super().__init__(app)
|
|
|
app_config = self.app.config
|
|
|
self.bucket_name = app_config.get('S3_BUCKET_NAME')
|
|
|
- self.client = boto3.client(
|
|
|
- 's3',
|
|
|
- aws_secret_access_key=app_config.get('S3_SECRET_KEY'),
|
|
|
- aws_access_key_id=app_config.get('S3_ACCESS_KEY'),
|
|
|
- endpoint_url=app_config.get('S3_ENDPOINT'),
|
|
|
- region_name=app_config.get('S3_REGION'),
|
|
|
- config=Config(s3={'addressing_style': app_config.get('S3_ADDRESS_STYLE')})
|
|
|
- )
|
|
|
+ if app_config.get('S3_USE_AWS_MANAGED_IAM'):
|
|
|
+ session = boto3.Session()
|
|
|
+ self.client = session.client('s3')
|
|
|
+ else:
|
|
|
+ self.client = boto3.client(
|
|
|
+ 's3',
|
|
|
+ aws_secret_access_key=app_config.get('S3_SECRET_KEY'),
|
|
|
+ aws_access_key_id=app_config.get('S3_ACCESS_KEY'),
|
|
|
+ endpoint_url=app_config.get('S3_ENDPOINT'),
|
|
|
+ region_name=app_config.get('S3_REGION'),
|
|
|
+ config=Config(s3={'addressing_style': app_config.get('S3_ADDRESS_STYLE')})
|
|
|
+ )
|
|
|
|
|
|
def save(self, filename, data):
|
|
|
self.client.put_object(Bucket=self.bucket_name, Key=filename, Body=data)
|