Tüm Ürünler
Search
Belge Merkezi

ApsaraVideo VOD:Upload files using the PHP SDK

Son Güncelleme:Oct 05, 2026

Bu konu, ApsaraVideo VOD depolama alanına çeşitli medya dosyalarını yüklemek için PHP sunucu tarafı yazılım geliştirme kitini (SDK) nasıl kullanacağınıza ilişkin ayrıntılı örnekler sunar.

Genel bakış

Not

PHP geliştirmesi için B/S (Tarayıcı/Sunucu) mimarisi önerilir.

PHP yükleme SDK'sı, ApsaraVideo VOD sunucu tarafı SDK'nın genel iş akışını takip eder. Daha fazla bilgi için bkz. Yükleme işlemi. PHP yükleme SDK'sını kullanmanın temel adımları aşağıdaki gibidir:

  1. Ön koşulları tamamlayın. Daha fazla bilgi için bkz. Ön koşullar.

  2. PHP yükleme SDK'sını entegre edin. Daha fazla bilgi için bkz. PHP yükleme SDK'sını entegre etme.

  3. Yükleme bilgilerini yapılandırmayı içeren yükleme mantığını uygulayın.

  4. PHP yükleme SDK'sının varsayılan uç noktası cn-shanghai (Şanghay) şeklindedir. Medya dosyalarını diğer bölgelere yüklemek için AliyunVodUploader nesnesini başlatırken bölgeyi belirtebilirsiniz. ApsaraVideo VOD tarafından desteklenen uç noktalar hakkında daha fazla bilgi için bkz. Uç noktalar.

    Aşağıdaki örnekte yükleme bölgesinin cn-beijing (Pekin) olarak nasıl ayarlanacağı gösterilmektedir:

    $apiRegionId = 'cn-beijing';  // The destination region for the upload.
    $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret, $apiRegionId);

Ön koşullar

  • ApsaraVideo VOD etkinleştirilmiş olmalıdır. Daha fazla bilgi için bkz. ApsaraVideo VOD'u etkinleştirme.

  • Belirtilen bölgedeki depolama yolu ve geri arama ayarları dahil olmak üzere yükleme için gerekli sistem ayarları yapılandırılmış olmalıdır. Daha fazla bilgi için bkz. Depolama paketlerini yönetme ve Geri aramaları yapılandırma.

  • ApsaraVideo VOD'a erişmek için bir RAM kullanıcısı oluşturulmuş ve bu kullanıcı kullanılıyor olmalıdır. Alibaba Cloud hesabınızın AccessKey çiftinin sızması nedeniyle oluşabilecek güvenlik risklerini önlemek için bir RAM kullanıcısı oluşturmanızı ve bu kullanıcıya ApsaraVideo VOD'a erişmek için gereken izinleri vermenizi öneririz. Ardından ApsaraVideo VOD'a erişmek için RAM kullanıcısının AccessKey çiftini kullanabilirsiniz. Daha fazla bilgi için bkz. RAM kullanıcısı oluşturma ve izin verme.

  • ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET ortam değişkenlerini yapılandırın. Daha fazla bilgi için bkz. Linux, macOS ve Windows'ta ortam değişkenlerini yapılandırma.

    Önemli
    • Bir Alibaba Cloud hesabının AccessKey çifti tüm API işlemlerine erişim iznine sahiptir. API işlemlerini çağırmak veya rutin bakım ve işletme işlemlerini gerçekleştirmek için bir RAM kullanıcısının AccessKey çiftini kullanın.

    • AccessKey ID'nizi ve AccessKey secret anahtarınızı proje koduna sabit kodlamayın. Sızması durumunda hesabınızdaki tüm kaynaklar tehlikeye girer.

  • İsteğe bağlı. ApsaraVideo VOD'a Security Token Service (STS) kullanarak erişmek istiyorsanız RAM kullanıcısı için bir rol oluşturun ve bu role ApsaraVideo VOD'a erişmek için gereken izinleri atayın. Daha fazla bilgi için bkz. STS belirteci alma.

PHP yükleme SDK'sını entegre etme

  1. SDK'yı ve demo uygulamayı indirin.

  2. VodUploadSDK-PHP_1.0.3.zip dosyasını çıkarın ve VodUploadSDK-PHP_1.0.3 dizinindeki voduploadsdk klasörünü projenize kopyalayın.

PHP yükleme SDK'sı dizin yapısı

Yol: VodUploadSDK-PHP_1.0.3/voduploadsdk/uploader

  • UploadVideoRequest.php


    Dizin


    Açıklama


    UploadVideoRequest


    Video yükleme istek sınıfı. Alanlar hakkında daha fazla bilgi için bkz. CreateUploadVideo.

  • UploadImageRequest.php


    Dizin


    Açıklama


    UploadImageRequest


    Görüntü yükleme istek sınıfı. Alanlar hakkında daha fazla bilgi için bkz. CreateUploadImage.

  • UploadAttachedMediaRequest.php


    Dizin


    Açıklama


    UploadAttachedMediaRequest


    Ek medya varlığı yükleme istek sınıfı. Alanlar hakkında daha fazla bilgi için bkz. CreateUploadAttachedMedia.

  • AliyunVodUploader.php


    Dizin


    Açıklama


    __construct


    Yüklemeler için AccessKey bilgisini, ApsaraVideo VOD merkezini ve uç noktayı ayarlar. Daha fazla bilgi için bkz. AccessKey ve ApsaraVideo VOD bölge kimlikleri.


    uploadLocalVideo


    Yerel videoları yüklemek için kullanılan arayüz.


    uploadWebVideo


    Web videolarını yüklemek için kullanılan arayüz.


    uploadLocalImage


    Yerel görüntüleri yükler.


    uploadWebImage


    Web görüntülerini yükler.


    uploadLocalAttachedMedia


    Yerel ek medya varlıklarını yükler.


    uploadWebAttachedMedia


    Web ek medya varlıklarını yükler.


    uploadLocalM3u8


    Yerel M3U8 dosyalarını yükler.


    uploadWebM3u8


    Web M3U8 dosyalarını yükler.


    parseM3u8File


    Parça adreslerinin listesini almak için bir M3U8 manifest dosyasını ayrıştırır.


    setEcsRegionId


    Varsa, yükleme betiğinin dağıtıldığı ECS örneğinin bölgesini ayarlar. Bölge, ApsaraVideo VOD depolama bölgesiyle aynıysa dahili ağ üzerinden yükleme otomatik olarak etkinleştirilir.


    setEnableSSL


    SSL'nin etkinleştirilip etkinleştirilmeyeceğini (ağ istekleri için HTTPS kullanımını) belirtir. İlgili uzantılar yüklü olmadığında veya yanlış yapılandırıldığında sorunları önlemek için varsayılan olarak devre dışı bırakılır.


    uploadProgressCallback


    Yükleme ilerlemesi için geri arama işlevi. Bu işlevi yeniden yazabilirsiniz. Yöntem imzası ve geçersiz kılma örneği için aşağıya bakın.

    uploadProgressCallback yöntemi imzası

    public function uploadProgressCallback($mediaId, $consumedBytes, $totalBytes)
    • $mediaId: Medya kimliği.

    • $consumedBytes: Şimdiye kadar yüklenen bayt sayısı.

    • $totalBytes: Dosyanın bayt cinsinden toplam boyutu.

    Yükleme ilerleme yüzdesini hesaplamak için 100 * ($consumedBytes / $totalBytes) formülünü kullanın. Sıfıra bölme hatasından kaçınmak için bölme işleminden önce $totalBytes değerinin 0'dan büyük olduğunu kontrol edin.

    Özel yükleme ilerlemesi görüntülemek için AliyunVodUploader sınıfını genişletin ve bu yöntemi geçersiz kılın. Aşağıdaki örnekte bunun nasıl yapılacağı gösterilmektedir:

    class MyAliyunVodUploader extends AliyunVodUploader {
        public function uploadProgressCallback($mediaId, $consumedBytes, $totalBytes) {
            if ($totalBytes > 0) {
                $rate = 100 * (floatval($consumedBytes) / floatval($totalBytes));
            } else {
                $rate = 0;
            }
            echo round($rate, 1) . "%\n";
            flush();
        }
    }
  • AliyunVodUtils.php


    Dizin


    Açıklama


    AliyunVodUtils


    Dizeleri kırpma, dosya uzantılarını alma ve dosya adlarını alma gibi statik işlevler sağlayan bir yardımcı program sınıfı.


    AliyunVodLog


    Basit yazdırma için kullanılan bir günlük sınıfı. logSwitch, günlük anahtarıdır.


    AliyunVodDownloader


    Web dosyalarını indirir.


    AliyunVodReportUpload


    Yükleme ilerlemesini bildirir.


    AliyunVodError


    Hata kodlarını tanımlar.

Yol: VodUploadSDK-PHP_1.0.3/voduploadsdk

  • aliyun-php-sdk-core: Yükleme SDK'sı için temel sınıfı sağlayan bir bağımlılık. Alibaba Cloud API imzalama, HTTP istekleri ve diğer çekirdek işlevsellikleri kapsüller.

  • aliyun-php-sdk-vod: ApsaraVideo VOD için sunucu tarafı API SDK'sı. ApsaraVideo VOD API'lerine yönelik istekleri kapsüller.

  • aliyun-php-sdk-oss: Yükleme SDK'sı için OSS sınıfını sağlayan bir bağımlılık. OSS yükleme işlemlerini ve diğer ilgili işlevleri kapsüller.

Yol: VodUploadSDK-PHP_1.0.3/samples

  • uploadVideo.php: Video yükleme için örnek kod.

  • uploadImage.php: Görüntü yükleme için örnek kod.

  • uploadAttachedMedia.php: Ek medya varlığı yükleme için örnek kod.

Senaryo 1: Ses ve video dosyalarını yükleme

Standart ses ve video dosyaları

Aşağıdaki türlerdeki ses ve video dosyalarını yükleyebilirsiniz:

  • Çok parçalı yükleme kullanarak yerel dosyaları yükleyebilirsiniz. Tek bir dosyanın boyutu en fazla 48,8 TB olabilir. Kaldığı yerden devam eden yükleme desteklenmez. Daha fazla bilgi için testUploadLocalVideo işlevine bakın.

  • Bir dosya URL'si belirterek web dosyalarını yükleyebilirsiniz. Tek bir dosyanın boyutu en fazla 48,8 TB olabilir. Bu yöntem, web dosyasının yüklenmeden önce yerel diske indirilmesini gerektirir. Yerel diskinizde yeterli alan olduğundan emin olun. Daha fazla bilgi için testUploadWebVideo işlevine bakın.

Örnek kodu görüntülemek için tıklayın

<?php
/**
 * Created by Aliyun ApsaraVideo VOD.
 */
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';
date_default_timezone_set('PRC');
// Test uploading a local video.
function testUploadLocalVideo($accessKeyId, $accessKeySecret, $filePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($filePath, 'testUploadLocalVideo via PHP-SDK');
        // CateId is the media category ID. You can view it on the **Category Management** page under **Configuration Management** > **Media Management** in the ApsaraVideo VOD console, or create one by calling the AddCategory operation. For more information, see [Manage media categories](https://www.alibabacloud.com/help/zh/vod/user-guide/manage-video-categories).
        $uploadVideoRequest->setCateId(<your category ID>);
        // Example CoverURL: http://example.com/example****.jpg
        //$uploadVideoRequest->setCoverURL("<your CoverURL>");
        //$uploadVideoRequest->setTags('test1,test2');
        //$uploadVideoRequest->setStorageLocation('outin-xx.oss-cn-beijing.aliyuncs.com');
        $uploadVideoRequest->setTemplateGroupId('your-template-group-id');
        $userData = array(
            // Example Callback: https://demo.aliyundoc.com/ProcessMessageCallback
            "MessageCallback"=>array("CallbackURL"=>"<your callback URL>"),
            "Extend"=>array("localId"=>"xxx", "test"=>"www")
        );
        $uploadVideoRequest->setUserData(json_encode($userData));
        $res = $uploader->uploadLocalVideo($uploadVideoRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalVideo Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}
// Test uploading a web video.
function testUploadWebVideo($accessKeyId, $accessKeySecret, $fileURL)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($fileURL, 'testUploadWebVideo via PHP-SDK');
        $res = $uploader->uploadWebVideo($uploadVideoRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebVideo Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}

####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
$localFilePath = '/opt/video/sample.mp4';
// testUploadLocalVideo($accessKeyId, $accessKeySecret, $localFilePath);

// Example webFileURL: http://example-bucket-****.cn-shanghai.aliyuncs.com/b55b904bc612463b812990b7c8cc****/daa30814c0c340cf8199926f78aa****-a0bc05ba62c3e95cc672e88b8281****-ld.mp4?auth_key=1608774986-0-0-c56acd302bea0c331370d8ed6865****
$webFileURL = '<your webFileURL>';
testUploadWebVideo($accessKeyId, $accessKeySecret, $webFileURL);

uploadLocalVideo yöntemi, bir videoyu yüklerken setTemplateGroupId() çağrısıyla bir kod dönüştürme şablonu grubu belirtmenize olanak tanır. Bir kod dönüştürme şablonu grubu kimliği belirtirseniz video, yükleme tamamlandığında otomatik olarak kodu dönüştürülür ve SubmitTranscodeJobs işlemini ayrıca çağırmanız gerekmez. Kod dönüştürme şablonu grubu kimliğini almak için VOD konsolunda Configuration Management > Media Processing Configuration > Transcoding Template Groups sayfasına gidin.

M3U8 video dosyaları

Aşağıdaki kod bir örnek sağlar:

Örnek kodu görüntülemek için tıklayın

<?php
/**
 * Created by Aliyun ApsaraVideo VOD.
 */
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';
date_default_timezone_set('PRC');
// Test uploading a local M3U8 video.
function testUploadLocalM3u8($accessKeyId, $accessKeySecret, $m3u8FilePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($m3u8FilePath, 'testUploadLocalM3u8 via PHP-SDK');
        // Call the API to parse the list of shard addresses from the M3U8 file. If the parsing result is inaccurate, concatenate the address list yourself. By default, the shard files and the M3U8 file are in the same directory.
        $sliceFiles = $uploader->parseM3u8File($m3u8FilePath);
        //print_r($sliceFiles);
        $res = $uploader->uploadLocalM3u8($uploadVideoRequest, $sliceFiles);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalM3u8 Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}

// Test uploading a web M3U8 video.
function testUploadWebM3u8($accessKeyId, $accessKeySecret, $m3u8FileUrl)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadVideoRequest = new UploadVideoRequest($m3u8FileUrl, 'testUploadWebM3u8 via PHP-SDK');
        // Call the API to parse the list of shard addresses from the M3U8 file. If the parsing result is inaccurate, concatenate the address list yourself. By default, the shard files and the M3U8 file are in the same directory.
        $sliceFileUrls = $uploader->parseM3u8File($m3u8FileUrl);
        //print_r($sliceFileUrls);
        $res = $uploader->uploadWebM3u8($uploadVideoRequest, $sliceFileUrls);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebM3u8 Failed, ErrorMessage: %s\n Location: %s %s\n Trace: %s\n",
            $e->getMessage(), $e->getFile(), $e->getLine(), $e->getTraceAsString());
    }
}
####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
$localM3u8FilePath = '/opt/video/m3u8/sample.m3u8';
//testUploadLocalM3u8($accessKeyId, $accessKeySecret, $localM3u8FilePath);

// Example webM3u8FileURL: http://example-bucket-****.cn-shanghai.aliyuncs.com/b55b904bc612463b812990b7c8cc****/daa30814c0c340cf8199926f78aa****-195a25af366b5edae324c47e99a0****-ld.m3u8?auth_key=1608775606-0-0-9fb038deaecd009dadd86721c585****
$webM3u8FileURL = '<your webM3u8FileURL>';
//testUploadWebM3u8($accessKeyId, $accessKeySecret, $webM3u8FileURL);

Yükleme hızlandırma

GB veya TB boyutundaki büyük dosyaları yüklemek veya Çin anakarasından Singapur depolama bölgesindeki bir depolama adresine yükleme yapmak gibi bölgeler arası yüklemeler gerçekleştirmek için yükleme hızlandırma özelliğini etkinleştirebilirsiniz. Daha fazla bilgi için bkz. Etkinleştirme yöntemi. Bu özelliği etkinleştirdikten sonra yükleme yapılandırmasındaki UserData nesnesine anahtar-değer çifti olarak AccelerateConfig eklemeniz gerekir. UserData nesnesi yoksa bunu oluşturun. Aşağıdaki kod bir örnek sağlar:

$userData = array(  
    "AccelerateConfig"=>array("Type"=>"oss","Domain"=>"****Bucket.oss-accelerate.aliyuncs.com"),
);       
$uploadVideoRequest->setUserData(json_encode($userData));

Parametre açıklaması

Ad

Tür

Açıklama

Type

string

Etkinleştirilecek yükleme hızlandırma türü. Yalnızca oss desteklenir.

Domain

string

Kullanıcının paketi için hızlandırma uç noktası. Varsayılan olarak HTTPS kullanılır.

Not

Etkinleştirmeden sonra atanan bir hızlandırma uç noktası kullanın, örneğin vod-***.oss-accelerate.aliyuncs.com.

Birden çok videoyu toplu olarak yükleme

uploadLocalVideo veya uploadWebVideo çağrısının her biri yalnızca tek bir video dosyası yükler. Tek bir çağrıda birden çok videonun toplu yüklenmesi desteklenmez. Birden çok videoyu toplu olarak yüklemek için UploadMediaByUrl işlemini çağırın.

konsol içindeki yükleme sayfasında videoları toplu olarak yüklediğinizde videolar yine de tek tek işlenir. Büyük dosyaları veya bir dosya grubunu yüklemeniz gerekiyorsa PC istemci aracını kullanmanızı öneririz.

Senaryo 2: Görüntüleri yükleme

Örnek kodu görüntülemek için tıklayın

Örnek kodu görüntülemek için tıklayın

<?php
/**
 * Created by Aliyun ApsaraVideo VoD.
 * User: https://www.aliyun.com/product/vod
 */

require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';

date_default_timezone_set('PRC');

// Test uploading a local image.
function testUploadLocalImage($accessKeyId, $accessKeySecret, $filePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadImageRequest = new UploadImageRequest($filePath, 'testUploadLocalImage via PHP-SDK');
        $uploadImageRequest->setCateId(1000009458);
        $res = $uploader->uploadLocalImage($uploadImageRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalImage Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

// Test uploading a web image.
function testUploadWebImage($accessKeyId, $accessKeySecret, $fileURL)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadImageRequest = new UploadImageRequest($fileURL, 'testUploadWebImage via PHP-SDK');
        $uploadImageRequest->setCateId(1000009458);
        $res = $uploader->uploadWebImage($uploadImageRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebImage Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');

$localFilePath = '/opt/image/test-image.jpg';
//testUploadLocalImage($accessKeyId, $accessKeySecret, $localFilePath);

$webFileURL = 'http://vod-download.cn-shanghai.aliyuncs.com/retina/pic/20180208/496AE240-54AE-4CC8-8578-3EEC8F38****.gif';
testUploadWebImage($accessKeyId, $accessKeySecret, $webFileURL);

Senaryo 3: Ek medya varlıklarını yükleme

Aşağıdaki kod bir örnek sağlar:

Örnek kodu görüntülemek için tıklayın

Örnek kodu görüntülemek için tıklayın

<?php
/**
 * Created by Aliyun ApsaraVideo VoD.
 * User: https://www.aliyun.com/product/vod
 */

require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'voduploadsdk' . DIRECTORY_SEPARATOR . 'Autoloader.php';

date_default_timezone_set('PRC');

// Test uploading a local auxiliary media asset.
function testUploadLocalAttachedMedia($accessKeyId, $accessKeySecret, $filePath)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadAttachedRequest = new UploadAttachedMediaRequest($filePath, 'watermark',
            'testUploadLocalAttachedMedia via PHP-SDK');
        //$uploadAttachedRequest->setCateId(100000****);
        $res = $uploader->uploadLocalAttachedMedia($uploadAttachedRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadLocalAttachedMedia Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

// Test uploading a web auxiliary media asset.
function testUploadWebAttachedMedia($accessKeyId, $accessKeySecret, $fileURL)
{
    try {
        $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret);
        $uploadAttachedRequest = new UploadAttachedMediaRequest($fileURL, 'watermark',
            'testUploadWebAttachedMedia via PHP-SDK');
        //$uploadAttachedRequest->setCateId(100000****);
        $res = $uploader->uploadWebAttachedMedia($uploadAttachedRequest);
        print_r($res);
    } catch (Exception $e) {
        printf("testUploadWebAttachedMedia Failed, ErrorMessage: %s\n", $e->getMessage());
    }

}

####  Run the test code   ####
// The AccessKey pair of an Alibaba Cloud account has permissions to access all APIs. Use the AccessKey pair of a RAM user for API access or daily O&M.
// Do not hard-code the AccessKey ID and AccessKey secret into your project code. This can lead to an AccessKey pair leak and compromise the security of all resources in your account.
// This example shows how to use an AccessKey pair from environment variables to authenticate API access. Before you run the sample code, configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKeySecret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');

$localFilePath = '/opt/image/test.png';
//testUploadLocalAttachedMedia($accessKeyId, $accessKeySecret, $localFilePath);

$webFileURL = 'http://vod-download.cn-shanghai.aliyuncs.com/retina/pic/20180208/496AE240-54AE-4CC8-8578-3EEC8F38****.gif';
testUploadWebAttachedMedia($accessKeyId, $accessKeySecret, $webFileURL);

Başvurular

Medya yüklemeye genel bakış

STS SDK'larına genel bakış