def test_presign_sigv2(self): presigned_url = self.client.generate_presigned_url( 'get_object', Params={ 'Bucket': self.bucket_name, 'Key': self.key }) self.assertTrue( presigned_url.startswith('https://%s.s3.amazonaws.com/%s' % (self.bucket_name, self.key)), "Host was suppose to use DNS style, instead " "got: %s" % presigned_url) # Try to retrieve the object using the presigned url. self.assertEqual(requests.get(presigned_url).content, b'foo')
def test_presign_with_existing_query_string_values(self): content_disposition = 'attachment; filename=foo.txt;' presigned_url = self.client.generate_presigned_url( 'get_object', Params={ 'Bucket': self.bucket_name, 'Key': self.key, 'ResponseContentDisposition': content_disposition }) response = requests.get(presigned_url) self.assertEqual(response.headers['Content-Disposition'], content_disposition) self.assertEqual(response.content, b'foo')
def _get_request(self, url, timeout, num_attempts=1): for i in range(num_attempts): try: response = requests.get(url, timeout=timeout) except RETRYABLE_HTTP_ERRORS as e: logger.debug( "Caught exception while trying to retrieve " "credentials: %s", e, exc_info=True) else: if response.status_code == 200: return response raise _RetriesExceededError()
def test_presign_sigv4(self): self.client_config.signature_version = 's3v4' self.client = self.session.create_client('s3', config=self.client_config) presigned_url = self.client.generate_presigned_url( 'get_object', Params={ 'Bucket': self.bucket_name, 'Key': self.key }) self.assertTrue( presigned_url.startswith('https://s3.amazonaws.com/%s/%s' % (self.bucket_name, self.key)), "Host was suppose to be the us-east-1 endpoint, instead " "got: %s" % presigned_url) # Try to retrieve the object using the presigned url. self.assertEqual(requests.get(presigned_url).content, b'foo')