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