from google.cloud import storage import json import os class CloudStorageManager: def __init__(self, bucket_name, credentials_str): credentials_dict = json.loads(credentials_str) self.client = storage.Client.from_service_account_info(credentials_dict) self.bucket_name = bucket_name def upload_file(self, file_path, destination_file_name): bucket = self.client.bucket(self.bucket_name) blob = bucket.blob(destination_file_name) blob.upload_from_filename(file_path) print(f'File {destination_file_name} uploaded to {self.bucket_name}.') def download_file(self, source_file_name, destination_path): bucket = self.client.bucket(self.bucket_name) blob = bucket.blob(source_file_name) blob.download_to_filename(destination_path) print(f'File {source_file_name} downloaded to {destination_path}.') def delete_file(self, file_name): bucket = self.client.bucket(self.bucket_name) blob = bucket.blob(file_name) blob.delete() print(f'File {file_name} deleted from {self.bucket_name}.') def get_file_by_uuid(self, uuid): bucket = self.client.bucket(self.bucket_name) blobs = bucket.list_blobs(prefix=uuid) for blob in blobs: if blob.name.endswith('.glb'): return blob.name return None def main(): # Replace 'your_bucket_name' with your actual bucket name # Replace 'your_credentials_str' with your actual credentials string # credentials_str = """ # { # "type": "service_account", # "project_id": "your_project_id", # "private_key_id": "your_private_key_id", # "private_key": "-----BEGIN PRIVATE KEY-----\nYourPrivateKey\n-----END PRIVATE KEY-----\n", # "client_email": "your_client_email", # "client_id": "your_client_id", # "auth_uri": "https://accounts.google.com/o/oauth2/auth", # "token_uri": "https://oauth2.googleapis.com/token", # "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", # "client_x509_cert_url": "your_client_x509_cert_url" # } # """ bucket_name = os.getenv('GOOGLE_BUCKET_NAME') credentials_str = SERVICE_ACOUNT_STUFF = os.getenv('GOOGLE_APPLICATION_CREDENTIALS_JSON') # Create an instance of CloudStorageManager storage_manager = CloudStorageManager(bucket_name, credentials_str) # Example usage: # Upload a file # storage_manager.upload_file('local_file_path', 'destination_file_name') # Download a file # storage_manager.download_file('source_file_name', 'local_destination_path') # Delete a file # storage_manager.delete_file('file_name_to_delete') # Get file by UUID # uuid = 'your_uuid' # file_name = storage_manager.get_file_by_uuid(uuid) # if file_name: # print(f"File with UUID '{uuid}' found: {file_name}") # else: # print(f"No file found with UUID '{uuid}'") if __name__ == "__main__": main()