get_object_cdn_url() & get_container_cdn_url() implementation for StorageDrivers

オープン
#1,696 コメント 2 件 リアクション 1 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
python
領域
cloud

調査の方向性

libcloud/storage/base.py の get_container_cdn_url() と get_object_cdn_url() から始め、GoogleStorageDriver を S3 の継承関係に沿って追跡します。どのドライバが CDN URL を提供できるか、またプロバイダにどのような動作が必要かを確認します。対応する実装が base の NotImplementedError に到達しなくなり、影響を受けるドライバがカバレッジで網羅されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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_cdn_url 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')

主要言語
Python
スター
2.1k
フォーク
935
平均マージ
5日 3時間
マージ済み PR(30日)
15

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/libcloud のほかの issue

apache/libcloud の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。