Este tópico apresenta exemplos detalhados de uso do kit de desenvolvimento de software (SDK) de upload server-side para PHP no envio de diversos arquivos de mídia ao armazenamento do ApsaraVideo VOD.
Visão geral
Recomenda-se a arquitetura B/S (Browser/Server) para desenvolvimento em PHP.
O SDK de upload para PHP segue o fluxo geral do SDK server-side do ApsaraVideo VOD. Para mais detalhes, consulte Processo de upload. O fluxo básico de utilização do SDK de upload para PHP é:
Cumpra os pré-requisitos. Para mais informações, veja Pré-requisitos.
Integre o SDK de upload para PHP. Consulte Integrar o SDK de upload para PHP.
-
Implemente a lógica de upload, incluindo a configuração das informações de envio.
Para enviar arquivos de áudio e vídeo, consulte Cenário 1: Upload de arquivos de áudio e vídeo.
Para enviar imagens, consulte Cenário 2: Upload de imagens.
Para enviar ativos de mídia auxiliares, consulte Cenário 3: Upload de ativos de mídia auxiliares.
-
O endpoint padrão do SDK de upload para PHP é
cn-shanghai(Xangai). Para enviar arquivos de mídia a outras regiões, especifique a região ao inicializarAliyunVodUploader. Para obter mais informações sobre os endpoints compatíveis com o ApsaraVideo VOD, consulte Endpoints.O exemplo abaixo demonstra como definir a região de upload para
cn-beijing(Pequim):$apiRegionId = 'cn-beijing'; // The destination region for the upload. $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret, $apiRegionId);
Pré-requisitos
Ative o ApsaraVideo VOD. Para mais detalhes, consulte Ativar o ApsaraVideo VOD.
Configure as definições de sistema necessárias para o upload, incluindo o caminho de armazenamento na região especificada e as configurações de callback. Consulte Gerenciar buckets de armazenamento e Configurar callbacks.
Crie um usuário RAM para acessar o ApsaraVideo VOD. Para evitar riscos de segurança decorrentes do vazamento do par de AccessKey da sua conta Alibaba Cloud, crie um usuário RAM e conceda-lhe as permissões necessárias para acessar o serviço. Em seguida, utilize o par de AccessKey desse usuário RAM para acessar o ApsaraVideo VOD. Para mais informações, consulte Criar um usuário RAM e conceder permissões.
-
Configure as variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET. Para mais detalhes, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.
ImportanteO par de AccessKey de uma conta Alibaba Cloud possui permissões em todas as operações de API. Utilize o par de AccessKey de um usuário RAM para chamar operações de API ou executar tarefas rotineiras de O&M.
Não codifique rigidamente (hard-code) seu AccessKey ID e AccessKey secret no código do projeto. Em caso de vazamento, todos os recursos da sua conta ficarão comprometidos.
(Opcional) Caso deseje acessar o ApsaraVideo VOD por meio do Security Token Service (STS), crie uma função para o usuário RAM e conceda a ela as permissões necessárias. Para mais informações, consulte Obter um token STS.
Integrar o SDK de upload para PHP
-
Baixe o SDK e a demonstração.
Versão do SDK: 1.0.3
Data de atualização: 19/04/2022
Endereço para download: Código-fonte do SDK V1.0.3 e da demonstração
Descompacte o arquivo VodUploadSDK-PHP_1.0.3.zip e copie a pasta voduploadsdk do diretório VodUploadSDK-PHP_1.0.3 para o seu projeto.
Estrutura de diretórios do SDK de upload para PHP
Caminho: VodUploadSDK-PHP_1.0.3/voduploadsdk/uploader
-
UploadVideoRequest.php
Diretório
Descrição
UploadVideoRequest
Classe de solicitação para upload de vídeos. Para detalhes sobre os campos, consulte CreateUploadVideo.
-
UploadImageRequest.php
Diretório
Descrição
UploadImageRequest
Classe de solicitação para upload de imagens. Para detalhes sobre os campos, consulte CreateUploadImage.
-
UploadAttachedMediaRequest.php
Diretório
Descrição
UploadAttachedMediaRequest
Classe de solicitação para upload de ativos de mídia auxiliares. Para detalhes sobre os campos, consulte CreateUploadAttachedMedia.
-
AliyunVodUploader.php
Diretório
Descrição
__construct
Define o AccessKey para uploads, o centro do ApsaraVideo VOD e o endpoint. Para mais informações, consulte AccessKey e IDs de região do ApsaraVideo VOD.
uploadLocalVideo
Interface para upload de vídeos locais.
uploadWebVideo
Interface para upload de vídeos da web.
uploadLocalImage
Faz o upload de imagens locais.
uploadWebImage
Faz o upload de imagens da web.
uploadLocalAttachedMedia
Faz o upload de ativos de mídia auxiliares locais.
uploadWebAttachedMedia
Faz o upload de ativos de mídia auxiliares da web.
uploadLocalM3u8
Faz o upload de arquivos M3U8 locais.
uploadWebM3u8
Faz o upload de arquivos M3U8 da web.
parseM3u8File
Analisa um manifesto M3U8 para obter a lista de endereços dos shards.
setEcsRegionId
Defina a região onde o script de upload está implantado em uma instância ECS, se aplicável. Se a região for igual à região de armazenamento do ApsaraVideo VOD, o upload via rede interna será ativado automaticamente.
setEnableSSL
Especifica se o SSL deve ser ativado (uso de HTTPS para requisições de rede). Por padrão, encontra-se desativado para evitar problemas quando extensões relacionadas não estão instaladas ou configuradas incorretamente.
uploadProgressCallback
Função de callback para o progresso do upload. Você pode reescrever esta função.
-
AliyunVodUtils.php
Diretório
Descrição
AliyunVodUtils
Classe utilitária que fornece funções estáticas, como truncamento de strings, obtenção de extensões de arquivo e nomes de arquivo.
AliyunVodLog
Classe de log para impressão simples.
logSwitché o interruptor do log.AliyunVodDownloader
Baixa arquivos da web.
AliyunVodReportUpload
Reporta o progresso do upload.
AliyunVodError
Define códigos de erro.
Caminho: VodUploadSDK-PHP_1.0.3/voduploadsdk
aliyun-php-sdk-core: Dependência que fornece a classe base para o SDK de upload. Encapsula a assinatura de API da Alibaba Cloud, requisições HTTP e outras funcionalidades essenciais.
aliyun-php-sdk-vod: SDK de API server-side para o ApsaraVideo VOD. Encapsula as requisições para as APIs do ApsaraVideo VOD.
aliyun-php-sdk-oss: Dependência que fornece a classe OSS para o SDK de upload. Encapsula operações de upload do OSS e outras funções relacionadas.
Caminho: VodUploadSDK-PHP_1.0.3/samples
uploadVideo.php: Código de exemplo para upload de vídeos.
uploadImage.php: Código de exemplo para upload de imagens.
uploadAttachedMedia.php: Código de exemplo para upload de ativos de mídia auxiliares.
Cenário 1: Upload de arquivos de áudio e vídeo
Arquivos padrão de áudio e vídeo
É possível fazer o upload dos seguintes tipos de arquivos de áudio e vídeo:
Faça o upload de arquivos locais via multipart upload. Um único arquivo pode ter até 48,8 TB. Não há suporte para upload retomável. Consulte a função
testUploadLocalVideo.Faça o upload de arquivos da web especificando uma URL. O tamanho máximo por arquivo é de 48,8 TB. Este método exige o download do arquivo da web para um disco local antes do envio. Certifique-se de haver espaço suficiente em disco. Consulte a função
testUploadWebVideo.
Arquivos de vídeo M3U8
Exemplo de código:
Aceleração de upload
Para enviar arquivos grandes (na casa de GBs ou TBs) ou realizar uploads entre regiões, como enviar um vídeo da China continental para um endereço de armazenamento na região de Singapura, ative o recurso de aceleração de upload. Para mais informações, consulte Método de ativação. Após ativar esse recurso, adicione o par chave-valor AccelerateConfig ao objeto UserData na configuração de upload. Caso o objeto UserData não exista, crie-o. Exemplo de código:
$userData = array(
"AccelerateConfig"=>array("Type"=>"oss","Domain"=>"****Bucket.oss-accelerate.aliyuncs.com"),
);
$uploadVideoRequest->setUserData(json_encode($userData));
Descrição dos parâmetros
Nome | Tipo | Descrição |
Type | string | Tipo de aceleração de upload a ser ativado. Apenas |
Domain | string | Endpoint de aceleração para o bucket do usuário. HTTPS é utilizado por padrão. Nota Utilize um endpoint de aceleração atribuído após a ativação, por exemplo, |
Cenário 2: Upload de imagens
Cenário 3: Upload de ativos de mídia auxiliares
Exemplo de código: