このトピックでは、C または C++ 用のサーバーアップロード SDK を使用してメディアファイルを ApsaraVideo VOD にアップロードする方法について説明します。
アップロードプロセス
C または C++ 用のアップロード SDK は、ApsaraVideo VOD SDK の一般的なプロセスに従います。詳細については、「アップロードプロセス」をご参照ください。以下では、C または C++ 用のサーバーアップロード SDK を使用する基本的なプロセスについて説明します。
前提条件セクションの説明に従って設定を完了します。
C または C++ 用のサーバーアップロード SDK を統合します。詳細については、「C または C++ 用のサーバーアップロード SDK の統合」をご参照ください。
アップロード情報を設定して、アップロードロジックを実装します。
オーディオまたはビデオファイルのアップロード方法の詳細については、「シナリオ 1: オーディオおよびビデオファイルのアップロード」をご参照ください。
イメージのアップロード方法の詳細については、「シナリオ 2: イメージのアップロード」をご参照ください。
補助メディアアセットのアップロード方法の詳細については、「シナリオ 3: 補助メディアアセットのアップロード」をご参照ください。
前提条件
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 ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。
オプション。Security Token Service (STS) を使用して ApsaraVideo VOD にアクセスする場合、RAM ユーザーのロールが作成され、そのロールに ApsaraVideo VOD へのアクセスに必要な権限が付与されていること。詳細については、「STS トークンの取得」をご参照ください。
説明STS を使用できるシナリオの詳細については、「資格情報と STS の比較」をご参照ください。
C または C++ 用のサーバーアップロード SDK の統合
C または C++ 用のサーバーアップロード SDK は、Linux オペレーティングシステムにのみインストールできます。
この例では、SDK V1.0.0 を使用します。ビジネス要件に基づいて他のバージョンを使用できます。
C または C++ 用のサーバーアップロード SDK のディレクトリとサンプルコードの詳細については、「ディレクトリ」をご参照ください。
このトピックでは、非 root ユーザーとして C または C++ 用のサーバーアップロード SDK をインストールする方法を説明し、インストールコマンドの例を示します。
次の表に、必要なソフトウェアパッケージとその使用法、およびインストールの例を示します。
ソフトウェアパッケージ | 説明 | YUM を使用したインストール | インターネット経由でダウンロードしたパッケージを使用したインストール |
CMake | サードパーティのコンパイラ。 |
|
|
libcurl | ネットワーク接続の問題をトラブルシューティングします。 |
|
|
libuuid | UUID を生成します。 | サンプルコード: | N/A |
apr | N/A | サンプルコード: |
|
apr-util | メモリ使用量とクロスプラットフォームの問題を管理します。 | サンプルコード: |
|
minixml | XML フォーマットで返されるデータを解析します。 | サンプルコード: |
|
jsoncpp | JSON フォーマットで返されるデータを解析します。 | サンプルコード: |
|
OSS SDK | C または C++ 用のサーバーアップロード SDK を使用する前に、C または C++ 用の Object Storage Service (OSS) SDK をダウンロードしてインストールする必要があります。 | N/A | ダウンロードリンクとインストール手順の詳細については、「インストール」をご参照ください。 重要 一部の OSS 依存関係がすでにインストールされている場合は、再度インストールする必要はありません。 |
C または C++ 用アップロード SDK | メディアファイルをアップロードします。 | N/A |
|
ディレクトリ
/VodSDK-C_1.0.0.gz/VodSDK-C_1.0.0/aliyun-c-sdk-vod/src/upload.h
ディレクトリ | 説明 |
CreateUploadVideoRequest | ビデオアップロードのリクエストクラス。パラメーターの詳細については、「CreateUploadVideo」をご参照ください。 |
CreateUploadImageRequest | イメージアップロードのリクエストクラス。パラメーターの詳細については、「CreateUploadImage」をご参照ください。 |
CreateUploadAttachedMediaRequest | 補助メディアアセットのアップロードのリクエストクラス。パラメーターの詳細については、「CreateUploadAttachedMedia」をご参照ください。 |
UploadOptions | アップロードパラメーターの構造。以下の項目でパラメーターについて説明します。
|
uploadLocalVideo | ローカルビデオをアップロードするために使用される API 操作。 |
uploadWebVideo | オンラインビデオをアップロードするために使用される API 操作。 |
uploadLocalImage | ローカルイメージをアップロードするために使用される API 操作。 |
uploadWebImage | オンラインイメージをアップロードするために使用される API 操作。 |
uploadLocalAttachedMedia | ローカルの補助メディアアセットをアップロードするために使用される API 操作。 |
uploadWebAttachedMedia | オンラインの補助メディアアセットをアップロードするために使用される API 操作。 |
uploadLocalM3u8 | ローカルの M3U8 ビデオをアップロードするために使用される API 操作。 |
uploadWebM3u8 | オンラインの M3U8 ビデオをアップロードするために使用される API 操作。 |
/VodSDK-C_1.0.0.gz/VodSDK-C_1.0.0/aliyun-c-sdk-vod/samples
ディレクトリ | 説明 |
uploadVideo.cpp | ビデオをアップロードするためのサンプルコード。 |
uploadImage.cpp | イメージをアップロードするためのサンプルコード。 |
uploadAttachedMedia.cpp | 補助メディアアセットをアップロードするためのサンプルコード。 |
シナリオ 1: オーディオおよびビデオファイルのアップロード
通常のオーディオおよびビデオファイル
ApsaraVideo VOD では、次のいずれかの方法でオーディオまたはビデオファイルをアップロードできます。
マルチパートアップロードを使用してローカルファイルをアップロードします。最大 48.8 TB のサイズのファイルをアップロードできます。再開可能なアップロードはサポートされていません。詳細については、サンプルコードの testUploadLocalVideo 関数をご参照ください。
ファイル URL を使用してオンラインファイルをアップロードします。最大 48.8 TB のサイズのファイルをアップロードできます。オンラインファイルをアップロードする前に、ファイルをローカルディスクにダウンロードする必要があります。ローカルディスクに十分な空き容量があることを確認してください。詳細については、次のサンプルコードの testUploadWebVideo 関数をご参照ください。