このトピックでは、アップロードSDK for PHPを使用してメディアファイルをApsaraVideo VODにアップロードして保存する方法について説明します。
アップロードのプロセス
アップロードSDK for Javaは、ApsaraVideo VOD SDKの一般的なアップロードプロセスに従います。 詳細については、「アップロードプロセス」をご参照ください。 次のコンテンツでは、アップロードSDK for PHPを使用するプロセスについて説明します。
[前提条件] セクションの説明に従って、設定を完了します。
PHP用のアップロードSDKを統合します。 詳細については、「PHP用アップロードSDKの統合」をご参照ください。
アップロードロジックを実装するためのアップロード情報を設定します。
オーディオまたはビデオファイルをアップロードする方法の詳細については、「シナリオ1: オーディオおよびビデオファイルのアップロード」をご参照ください。
画像のアップロード方法の詳細については、「シナリオ2: 画像のアップロード」をご参照ください。
補助メディアアセットをアップロードする方法の詳細については、「シナリオ3: 補助メディアアセットのアップロード」をご参照ください。
PHP用アップロードSDKのデフォルトのエンドポイントは
cn-shanghai
です。 メディアファイルを中国 (上海) 以外のリージョンにアップロードする場合は、SDKの初期化時にAliyunVodUploader
を設定してリージョンを指定できます。 サポートされているエンドポイントの詳細については、「エンドポイント」をご参照ください。次のサンプルコードは、
中国 (北京)
リージョンにメディアファイルをアップロードする方法の例を示しています。$apiRegionId = 'cn-beijing'; // Upload media files to the China (Beijing) region. $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret, $apiRegionId);
前提条件
ApsaraVideo VODが有効化されています。 詳細については、「ApsaraVideo VODの有効化」をご参照ください。
指定されたリージョンのストレージパスやコールバック設定など、アップロードに必要なシステム設定が構成されます。 詳細については、「ストレージバケットの管理」および「コールバックの設定」をご参照ください。
RAMユーザーが作成され、ApsaraVideo VODへのアクセスに使用されます。 Alibaba CloudアカウントのAccessKeyペアの漏洩によるセキュリティリスクを防ぐため、RAMユーザーを作成し、ApsaraVideo VODへのアクセスに必要な権限をRAMユーザーに付与することを推奨します。 その後、RAMユーザーのAccessKeyペアを使用してApsaraVideo VODにアクセスできます。 詳細については、「Create and grant permissions to a RAM user」をご参照ください。
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の比較」をご参照ください。
PHPのアップロードSDKの統合
PHP用アップロードSDKとサンプルコードを含むパッケージVodUploadSDK-PHP_1.0.3.zipをダウンロードします。 詳細については、「SDKの概要とダウンロード」をご参照ください。
説明この例では、PHP V1.0.3のアップロードSDKが使用されています。 ビジネス要件に基づいて他のバージョンを使用できます。
解凍後のディレクトリの詳細については、「ディレクトリ」をご参照ください。
VodUploadSDK-PHP_1.0.3.zipファイルを解凍し、VodUploadSDK-PHP_1.0.3ディレクトリのvoduploadsdkフォルダーをプロジェクトにコピーします。
PHPのアップロードSDKの更新
現在のSDKで新しい操作または既存の操作の新機能が使用できない場合は、SDKを最新バージョンに更新します。 詳細については、「SDKのアップロード」をご参照ください。
現在のSDKのバージョン番号とリリース日は、voduploadsdkディレクトリのChangeLog.txtファイルの最初の行で取得できます。
ディレクトリ
/VodUploadSDK-PHP_1.0.3.zip/VodUploadSDK-PHP_1.0.3/voduploadsdk/uploader
UploadVideoRequest.php
ディレクトリ
説明
UploadVideoRequest
ビデオアップロードのリクエストクラス。 パラメーターの詳細については、「CreateUploadVideo」をご参照ください。
UploadImageRequest.php
ディレクトリ
説明
UploadImageRequest
画像アップロードのリクエストクラス。 パラメーターの詳細については、「CreateUploadImage」をご参照ください。
UploadAttachedMediaRequest.php
ディレクトリ
説明
UploadAttachedMediaRequest
補助メディアアセットのアップロードのリクエストクラス。 パラメーターの詳細については、「CreateUploadAttachedMedia」をご参照ください。
AliyunVodUploader.php
ディレクトリ
説明
__construct
ApsaraVideo VODのAccessKeyペア、アクセスリージョン、およびアクセスドメイン名を設定するために使用されるコンストラクター。 詳細については、「RAMユーザーの作成と権限付与」および「ApsaraVideo VODのリージョンID」をご参照ください。
uploadLocalVideo
ローカルビデオのアップロードに使用されるAPI操作。
uploadWebVideo
オンラインビデオのアップロードに使用されるAPI操作。
uploadLocalImage
ローカル画像のアップロードに使用されるAPI操作。
uploadWebImage
オンライン画像のアップロードに使用されるAPI操作。
uploadLocalAttachedMedia
ローカル補助メディアアセットをアップロードするために使用されるAPI操作。
uploadWebAttachedMedia
オンライン補助メディアアセットのアップロードに使用されるAPI操作。
uploadLocalM3u8
ローカルM3U8ビデオのアップロードに使用されるAPI操作。
uploadWebM3u8
オンラインM3U8ビデオのアップロードに使用されるAPI操作。
parseM3u8File
M3U8インデックスファイルを解析してパーツファイルのURLを取得するために使用されるAPI操作。
setEcsRegionId
アップロードスクリプトがデプロイされるElastic Compute Service (ECS) インスタンスのリージョンを指定するために使用されるAPI操作。 ECSインスタンスのリージョンがApsaraVideo VODのストレージリージョンと同じ場合、ファイルは内部ネットワーク経由で自動的にアップロードされます。
setEnableSSL
HTTPS経由でリクエストを送信するかどうかを指定するために使用されるAPI操作。 デフォルトでは、関連する拡張機能がインストールされていない場合、または構成例外が発生した場合に障害を防ぐため、HTTPSは無効になります。
uploadProgressCallback
アップロードの進行状況のコールバックを設定するために使用されるAPI操作。 この結果はオーバーライドできます。
AliyunVodUtils.php
ディレクトリ
説明
AliyunVodUtils
文字列を切り捨て、拡張子とファイル名を取得するための静的関数を提供するユーティリティクラス。
AliyunVodLog
ログ機能を提供するログクラス。 logSwitchパラメーターを設定して、ロギングを有効または無効にできます。
AliyunVodDownloader
オンラインファイルのダウンロードに使用されるクラス。
AliyunVodReportUpload
アップロードの進行状況を報告するために使用されるクラス。
AliyunVodError
エラーコードを定義するために使用されるクラス。
/VodUploadSDK-PHP_1.0.3.zip/VodUploadSDK-PHP_1.0.3/voduploadsdk
aliyun-php-sdk-core: アップロードSDKが依存する基本クラス。 このパッケージは、Alibaba Cloud API署名とHTTPリクエストをカプセル化します。
aliyun-php-sdk-vod: ApsaraVideo VOD SDK。 このパッケージは、ApsaraVideo VODのAPIリクエストをカプセル化します。
aliyun-php-sdk-oss: アップロードSDKが依存するObject Storage Service (OSS) クラス。 このパッケージは、OSSアップロードなどの操作をカプセル化します。
/VodUploadSDK-PHP_1.0.3.zip/VodUploadSDK-PHP_1.0.3 /サンプル
uploadVideo.php: ビデオアップロードのサンプルコード。
uploadImage.php: 画像アップロードのサンプルコード。
uploadAttachedMedia.php: 補助メディアアセットのアップロードのサンプルコード。
シナリオ1: オーディオファイルとビデオファイルのアップロード
通常のオーディオおよびビデオファイル
アップロードSDK for PHPは、次の種類のオーディオおよびビデオファイルをサポートしています。
マルチパートアップロードを使用して、ローカルファイルをアップロードします。 最大48.8テラバイトのファイルをアップロードできます。 再開可能なアップロードはサポートされていません。 詳細については、サンプルコードのtestUploadLocalVideo関数を参照してください。
ファイルのURLを使用してオンラインファイルをアップロードします。 最大48.8テラバイトのファイルをアップロードできます。 オンラインファイルをアップロードする前に、ファイルをローカルディスクにダウンロードする必要があります。 ローカルディスクに十分な容量があることを確認してください。 詳細については、サンプルコードのtestUploadWebVideo関数を参照してください。
M3U8ファイル
サンプルコード:
シナリオ2: 画像のアップロード
シナリオ3: 補助メディア資産のアップロード
サンプルコード: