@@ -1379,9 +1379,6 @@ def test_presigned_get_object_response_headers( # pylint: disable=invalid-name
13791379 size = 1 * KB
13801380 _CLIENT .put_object (bucket_name , object_name , LimitedRandomReader (size ),
13811381 size )
1382- presigned_get_object_url = _CLIENT .presigned_get_object (
1383- bucket_name , object_name , timedelta (seconds = 120 ))
1384-
13851382 response_headers = {
13861383 'response-content-type' : content_type ,
13871384 'response-content-language' : content_language
@@ -1418,6 +1415,51 @@ def test_presigned_get_object_response_headers( # pylint: disable=invalid-name
14181415 _CLIENT .remove_bucket (bucket_name )
14191416
14201417
1418+ def test_presigned_get_object_range ( # pylint: disable=invalid-name
1419+ log_entry ):
1420+ """Test presigned_get_object() with headers."""
1421+
1422+ # Get a unique bucket_name and object_name
1423+ bucket_name = _gen_bucket_name ()
1424+ object_name = f"{ uuid4 ()} "
1425+
1426+ log_entry ["args" ] = {
1427+ "bucket_name" : bucket_name ,
1428+ "object_name" : object_name ,
1429+ }
1430+
1431+ _CLIENT .make_bucket (bucket_name )
1432+ try :
1433+ size = 556433 # on purpose its unaligned
1434+ _CLIENT .put_object (bucket_name , object_name , LimitedRandomReader (size ),
1435+ size )
1436+
1437+ presigned_get_object_url = _CLIENT .presigned_get_object (
1438+ bucket_name , object_name , timedelta (seconds = 120 ))
1439+
1440+ log_entry ["args" ]["presigned_get_object_url" ] = (
1441+ presigned_get_object_url )
1442+
1443+ response = HTTP .urlopen ('GET' , presigned_get_object_url ,
1444+ headers = {'Range' : 'bytes=490897-556432' })
1445+
1446+ log_entry ["args" ]['response.status' ] = response .status
1447+ log_entry ["args" ]['response.reason' ] = response .reason
1448+ log_entry ["args" ]['response.headers' ] = json .dumps (
1449+ response .headers .__dict__ )
1450+ # pylint: disable=protected-access
1451+ log_entry ["args" ]['response._body' ] = response ._body .decode ('utf-8' )
1452+
1453+ if response .status != 200 :
1454+ raise Exception (
1455+ "Presigned GET object URL {presigned_get_object_url} failed; "
1456+ "code: {response.code}, error: {response.data}"
1457+ )
1458+ finally :
1459+ _CLIENT .remove_object (bucket_name , object_name )
1460+ _CLIENT .remove_bucket (bucket_name )
1461+
1462+
14211463def test_presigned_get_object_version ( # pylint: disable=invalid-name
14221464 log_entry ):
14231465 """Test presigned_get_object() of versioned object."""
0 commit comments