'Using boto3 for GCP retention settings

I am using the python boto3 package to access AWS S3 and GCP buckets. These buckets have object lock/retention set to their respective buckets. Is there a common packge/SDK that would fetch the lock/retention details.

        session = boto3.session.Session(aws_access_key_id=access_key,
                                        aws_secret_access_key=secret_key,
                                        region_name=region_name)
        s3_client = session.client('s3', endpoint_url=endpoint)
        head = s3_client.head_bucket(Bucket=bucket_name)
        result = s3_client.get_object_lock_configuration(Bucket=bucket_name)

This code block works for AWS S3 but throws exception for GCP buckets. Exception thrown:

[DEBUG] Response body: b"<?xml version='1.0' encoding='UTF-8'?><Error><Code>InvalidArgument</Code>
<Message>Invalid argument.</Message><Details>Invalid query parameter(s): [object-lock]</Details></Error>" 2022-03-03 20:16:37,111 botocore.hooks 
[DEBUG] Event needs-retry.s3.GetObjectLockConfiguration: calling handler <botocore.retryhandler.RetryHandler object at 0x7f518264a310> 2022-03-03 20:16:37,112 botocore.retryhandler 
[DEBUG] No retry needed. 2022-03-03 20:16:37,113 botocore.hooks 
[DEBUG] Event needs-retry.s3.GetObjectLockConfiguration: calling handler <bound method S3RegionRedirector.redirect_from_error of <botocore.utils.S3RegionRedirector object at 0x7f518264a370>> 
An error occurred (InvalidArgument) when calling the GetObjectLockConfiguration operation: Invalid argument.

Thank you!!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source