| 
					
				 | 
			
			
				@@ -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) 
			 |