apache / libcloud

Apache Libcloud is a Python library which hides differences between different cloud provider APIs and allows you to manage different cloud resources through a unified and easy to use API.
https://libcloud.apache.org
Apache License 2.0
2.03k stars 925 forks source link

get_object_cdn_url() & get_container_cdn_url() implementation for StorageDrivers #1696

Open jasonkrasavage opened 2 years ago

jasonkrasavage commented 2 years ago

Feature Request

Hi all! After beginning to integrate the libcloud library into an application I am writing and attempting to use both the get_object_cdn_url() and get_container_cdn_url(), I have realized that these methods appear to not be implemented back at the base level (libcloud/storage/base.py) in the StorageDriver class, and never implements in any inherited classes. I am attempting to use the Google driver, which inherits from the S3 driver, which inherits from the base.py StorageDriver, and looking at these methods in there, it appears they are hardcoded to raise the NotImplementedError: _"get_container_cdnurl not implemented for this driver". You can see that here on lines 399 and 430.

I just wanted to confirm that I am indeed right about this, and see if there is already a roadmap that includes this feature. If not, I may be willing to take it on depending on the implications to the rest of the codebase. Apologies if I am not understanding the codebase correctly, I don't have any experience at all with libcloud besides this quick integration.

Does anyone have anything thoughts, reservations, ideas, on this?

Here is a chunk of code using a Google Cloud Storage instance to replicate this not implemented error:

> import libcloud > driver = libcloud.storage.drivers.google_storage.GoogleStorageDriver(key='foo', secret='bar') > driver.get_container_cdn_url('container name')

harshvar2 commented 1 year ago

@Kami @tonybaloney @pquerna can u please check on priority, thanks in advance.

btoro commented 5 months ago

Any updates on this or will this not be supported? Seems like a core function for using GCP as as driver.