このトピックでは、アップロードSDK for Pythonを使用してメディアファイルをApsaraVideo VODにアップロードする方法について説明します。
アップロードのプロセス
Python用アップロードSDKは、ApsaraVideo VOD SDKの一般的なアップロードプロセスに従います。 詳細については、「アップロードプロセス」をご参照ください。 次のコンテンツでは、Python用サーバーアップロードSDKを使用する基本的なプロセスについて説明します。
このトピックの前提条件セクションで説明しているように、設定を完了します。
Python用のアップロードSDKを統合します。 詳細については、「Python用アップロードSDKの統合」をご参照ください。
アップロードロジックを実装するためのアップロード情報を設定します。
オーディオまたはビデオファイルをアップロードする方法の詳細については、「シナリオ1: オーディオおよびビデオファイルのアップロード」をご参照ください。
画像のアップロード方法の詳細については、「シナリオ2: 画像のアップロード」をご参照ください。
補助メディアアセットをアップロードする方法の詳細については、「シナリオ3: 補助メディアアセットのアップロード」をご参照ください。
中国 (上海) 以外のリージョンにメディアファイルをアップロードする場合は、
AliyunVodUploader.py
でApiRegion
を指定します。 デフォルトでは、アップロードSDK for Pythonはメディアファイルをcn-shanghai
にアップロードします。 サポートされているエンドポイントの詳細については、「エンドポイント」をご参照ください。次のサンプルコードは、
中国 (北京)
リージョンを指定する方法の例を示しています。self.setApiRegion('cn-beijing')
前提条件
ApsaraVideo VODが有効化されています。 詳細については、「ApsaraVideo VODの有効化」をご参照ください。
指定されたリージョンのストレージパスやコールバック設定など、アップロードに必要なシステム設定が構成されます。 詳細については、「ストレージバケットの管理」および「コールバックの設定」をご参照ください。
RAMユーザーが作成され、ApsaraVideo VODへのアクセスに使用されます。 Alibaba CloudアカウントのAccessKeyペアの漏洩によるセキュリティリスクを防ぐため、RAMユーザーを作成し、ApsaraVideo VODへのアクセスに必要な権限をRAMユーザーに付与することを推奨します。 その後、RAMユーザーのAccessKeyペアを使用してApsaraVideo VODにアクセスできます。 詳細については、「RAMユーザーの作成と権限付与」をご参照ください。
ALIBABA_CLOUD_ACCESS_KEY_IDおよびALIBABA_CLOUD_ACCESS_KEY_SECRET環境変数を設定します。 詳細については、「Linux、macOS、およびWindowsでの環境変数の設定」をご参照ください。
重要Alibaba CloudアカウントのAccessKeyペアには、すべてのAPI操作に対する権限があります。 RAMユーザーのAccessKeyペアを使用して、API操作を呼び出したり、ルーチンのO&Mを実行したりすることを推奨します。
AccessKey IDとAccessKeyシークレットをプロジェクトコードにハードコードしないことを推奨します。 そうしないと、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。
オプションです。 RAMユーザー用にロールが作成され、Security Token Service (STS) を使用してApsaraVideo VODにアクセスする場合は、ApsaraVideo VODにアクセスするために必要な権限がロールに付与されます。 詳細については、「STSを使用した動画のアップロード」をご参照ください。
説明STSを使用できるシナリオの詳細については、「資格情報とSTSの比較」をご参照ください。
Python用のアップロードSDKの統合
アップロードSDK For Pythonのディレクトリの詳細については、「ディレクトリ」をご参照ください。
次のセクションでは、PythonのアップロードSDKを非rootユーザーとして統合する方法について説明します。
次のコマンドを実行して依存関係をインストールします。
sudo pip install aliyun-python-sdk-core
sudo pip install aliyun-python-sdk-vod
sudo pip install oss2
説明Python 3.xを使用している場合は、sudo pip install aliyun-python-sdk-coreをsudo pip install aliyun-python-sdk-core-v3に置き換えます。 複数のバージョンのPythonをインストールしている場合は、pip3コマンドを実行できます。 SDKの統合時にエラーが発生した場合は、FAQに記載されている手順に従ってエラーのトラブルシューティングを行います。
Python用のアップロードSDKとサンプルコードを含むVodUploadSDK-Python_1.3.*.zipパッケージをダウンロードします。 詳細については、「SDKのアップロード」をご参照ください。
説明このトピックでは、SDK V1.3.1を例として使用します。 ビジネス要件に基づいて他のバージョンを使用できます。
VodUploadSDK-Python_1.3.*.zipパッケージを解凍し、voduploadsdkをVodUploadSDK-Python_1.3.* ディレクトリからローカルプロジェクトのディレクトリまたはsite-packagesディレクトリにコピーします。 voduploadsdkをローカルプロジェクトのディレクトリにコピーすることを推奨します。
Python用のアップロードSDKの更新
現在のSDKで新しい操作または既存の操作の新機能が使用できない場合は、SDKを最新バージョンに更新します。
次のコマンドを実行して依存関係をインストールします。
sudo pip install -- upgrade aliyun-python-sdk-vod
sudo pip install -- アップグレードoss2
Python用アップロードSDKの最新バージョンをダウンロードして、既存のSDKを上書きします。 詳細については、「SDKの概要とダウンロード」をご参照ください。
説明voduploadsdkディレクトリのChangeLog.txtファイルの最初の行で、現在のSDKのバージョン番号とリリース日を取得できます。
ディレクトリ
voduploadsdk
AliyunVodUtils.py
ディレクトリ
説明
AliyunVodLog
アップロードSDKのログクラス。 クラスはロギングに基づいて実装されます。
AliyunVodUtils
アップロードSDKのユーティリティクラス。
AliyunVodException
アップロードSDKの例外クラス。 統一された例外処理がサポートされます。 外部呼び出しのAliyunVodException例外のみを検出する必要があります。
UploadVideoRequest.py
ディレクトリ
説明
UploadVideoRequest
ビデオアップロードのリクエストクラス。 パラメーターの詳細については、「CreateUploadVideo」をご参照ください。
UploadImageRequest.py
ディレクトリ
説明
UploadImageRequest
画像アップロードのリクエストクラス。 パラメーターの詳細については、「CreateUploadImage」をご参照ください。
UploadAttachedMediaRequest.py
ディレクトリ
説明
UploadAttachedMediaRequest
補助メディアアセットのアップロードのリクエストクラス。 パラメーターの詳細については、「CreateUploadAttachedMedia」をご参照ください。
AliyunVodUploader.py
ディレクトリ
説明
uploadLocalVideo
ローカルビデオのアップロードに使用されるAPI操作。
uploadWebVideo
オンラインビデオのアップロードに使用されるAPI操作。
uploadLocalM3u8
ローカルM3U8ビデオのアップロードに使用されるAPI操作。
uploadWebM3u8
オンラインM3U8ビデオのアップロードに使用されるAPI操作。
uploadImage
ローカルまたはオンライン画像のアップロードに使用されるAPI操作。
uploadAttachedMedia
ローカルまたはオンラインの補助メディア資産をアップロードするために使用されるAPI操作。
parseWebM3u8
オンラインM3U8ビデオのファイル部分に関する情報を解析するために使用されるAPI操作。
parseLocalM3u8
ローカルM3U8ビデオのファイル部分に関する情報を解析するために使用されるAPI操作。
setApiRegion
ApsaraVideo VODのアクセス領域を指定するために使用されるAPI操作。 デフォルト値: cn-shanghai。 シンガポールのap-southeast-1など、中国本土以外のリージョンを指定できます。 詳細については、「ApsaraVideo VODのリージョンID」をご参照ください。
setMultipartUpload
マルチパートアップロードのしきい値とパーツサイズを設定するために使用されるAPI操作。
uploadProgressCallback
アップロードの進行状況のコールバックを設定するために使用されるAPI操作。 この結果はオーバーライドできます。
setEnableCrc
アップロード中に巡回冗長検査 (CRC) を有効にするかどうかを指定するために使用されるAPI操作。 デフォルトでは、CRCは有効です。
ChangeLog.txt: バージョン履歴。 最初の行からSDKのバージョン番号とリリース日を取得できます。
samplesディレクトリ
uploadVideo.py: ビデオアップロードのサンプルコード。
uploadImage.py: 画像アップロードのサンプルコード。
uploadAttachedMedia.py: 補助メディアアセットのアップロードのサンプルコード。
シナリオ1: オーディオファイルとビデオファイルのアップロード
通常のオーディオおよびビデオファイル
ApsaraVideo VODでは、次のいずれかの方法でオーディオまたはビデオファイルをアップロードできます。
マルチパートアップロードを使用して、ローカルファイルをアップロードします。 最大48.8テラバイトのファイルをアップロードできます。 再開可能なアップロードはサポートされていません。 詳細については、サンプルコードのtestUploadLocalVideo関数を参照してください。
ファイルのURLを使用してオンラインファイルをアップロードします。 最大48.8テラバイトのファイルをアップロードできます。 オンラインファイルをアップロードする前に、ファイルをローカルディスクにダウンロードする必要があります。 ローカルディスクに十分な容量があることを確認してください。 詳細については、サンプルコードのtestUploadWebVideo関数を参照してください。
M3U8ファイル
シナリオ2: 画像のアップロード
シナリオ3: 補助メディア資産のアップロード
よくある質問
サンプルコードを使用してオンラインビデオストリームをアップロードするときに、ERROR:root:Download fail: [Errno 2] No such file or directory
というエラーメッセージが返された場合は、voduploadsdkと同じレベルのディレクトリにdlfilesフォルダーを作成してエラーを修正できます。