This is a note for myself.
#!/usr/bin/env python3
import oci.object_storage
import urllib3
import os
def download_backup(bucket_name, file_name, local_dir):
signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner()
object_client = oci.object_storage.ObjectStorageClient(config={},signer=signer)
object = object_client.get_object('id4qji14rv70', bucket_name, file_name)
restored_file = os.path.join(local_dir, file_name)
with open(restored_file, 'wb') as f:
for chunk in object.data.raw.stream(1024 * 1024, decode_content=False):
f.write(chunk)
object_meta = object_client.head_object('id4qji14rv70', bucket_name, file_name)
content_length=object_meta.headers['Content-Length']
file_stats = os.stat(file_name)
if file_stats.st_size == int(content_length):
print(f"Validated {content_length}")
else:
print(f"Validation failed. Expected: {content_length} Actual: {file_stats.st_size}")
if __name__ == '__main__':
download_backup('backup', '2022-03-21.zip', '/home/opc')