Ao usar o recurso de processamento de dados, cada objeto aciona uma tarefa. Para cada tarefa, especifique um caminho de salvamento para o objeto processado. Para evitar que os objetos sejam sobrescritos, use um caminho de saída dinâmico. Use variáveis para referenciar informações do objeto de origem, como bucket, chave do objeto ou horário de upload. Por exemplo, em uma tarefa de extração de quadros de vídeo, defina o caminho de saída como oss://test-bucket/{dirname}/{barename}_output.{autoext}. Isso salva o objeto processado no mesmo diretório do objeto de origem, nomeia-o como source-object-name_output e adiciona automaticamente a extensão correta.
Casos de uso
Casos de uso no Console
-
Tarefas: Referencie informações do objeto de origem no caminho de saída de uma tarefa de processamento. Por exemplo, para converter um documento em imagens JPG, defina o caminho de saída como
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}. Durante o processamento,{autoext}é substituído porjpg. As imagens resultantes são salvas emoss://test-bucket/output/source-directory/source-filename/image-sequence-number.jpg.Na caixa de diálogo Create Task, selecione
doc_to_jpgem Style. Um aviso abaixo de Output Path indica que você deve inserir uma chave de objeto completa, que pode incluir variáveis, e que os caminhos de entrada e saída devem ser diferentes. Na seção Notification Configuration, selecione Message Queue. Após concluir as configurações, clique em OK. -
Processamento em lote: Ao criar um trabalho de processamento em lote, o sistema gera uma tarefa para cada objeto existente. Para evitar sobreposição de dados, recomendamos o uso de variáveis no caminho de saída. Por exemplo, para extrair quadros de um vídeo e salvá-los como imagens PNG, defina o caminho de saída como
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}. Durante o processamento,{autoext}é substituído porpng. As imagens PNG geradas são salvas emoss://test-bucket/output/source-directory/source-filename/frame-number.png.Após configurar o caminho de saída na seção Output Configuration, certifique-se de que ele seja diferente do caminho de entrada caso utilize as variáveis
key,barenameoubasename. Essa precaução evita que o objeto de origem seja sobrescrito e previne a criação de loops infinitos. Na seção Permission Configuration, selecione AliyunIMMBatchTriggerRole (Default Role) em Service Role e clique em OK. -
Triggers: A criação de um trigger gera uma tarefa para cada novo objeto. Para evitar sobreposições, use variáveis no caminho de saída. Por exemplo, se um trigger de conversão de documentos for criado para converter arquivos em imagens JPG, defina o caminho de saída como
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}. Durante o processamento,{autoext}é substituído porjpg. As imagens JPG geradas são salvas emoss://test-bucket/output/source-directory/source-filename/image-sequence-number.jpg.Caso utilize as variáveis de chave de objeto, barename ou basename, garanta que o caminho de saída difira do caminho de entrada para impedir a sobreposição de objetos. Na seção Permission Configuration, selecione AliyunIMMBatchTriggerRole (Default Role) em Service Role e clique em OK.
Casos de uso da API
Salvar como (
sys/saveas): Os parâmetros b (bucket) e o (objeto) da operação salvar como (sys/saveas) aceitam variáveis. Por exemplo, para converter as páginas 1 a 10 de um documento chamadoexample.docxem imagens PNG, defina o parâmetrosys/saveascomob_e2J1Y2tldH0,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw. Nesse parâmetro,e2J1Y2tldH0representa o valor codificado em Base64 de {bucket}, eZG9jX2ltYWdlcy97aW5kZXh9LnBuZwé o valor codificado em Base64 dedoc_images/{index}.png. As imagens convertidas são então salvas no mesmo bucket do objeto de origem, no caminhodoc_images/index.png.Tarefas: O caminho de saída das tarefas aceita variáveis. Por exemplo, ao chamar a operação CreateOfficeConversionTask para criar uma tarefa de conversão de documentos, defina o parâmetro TargetURI com o caminho completo de saída, incluindo a extensão. O TargetURI pode conter variáveis, como
oss://test-bucket/output/{dirname}/{barename}/{index}.jpg.
Observações
No processamento em lote e em triggers, se o caminho de saída não terminar com uma barra (
/), a chave do objeto deverá incluir pelo menos uma variável. Isso impede que múltiplos objetos de saída se sobrescrevam.O caminho de saída de uma tarefa não pode terminar com uma barra (
/), mas pode conter variáveis.
Variáveis relacionadas a tarefas
Também é possível usar o timestamp de uma solicitação de processamento síncrono ou assíncrono como variável. Por exemplo, se você enviar uma solicitação de processamento em 2022-09-01T02:06:57.798Z, poderá usar as variáveis listadas na tabela a seguir.
|
Parâmetro |
Descrição |
Valor de exemplo |
|
t_year |
Ano de quatro dígitos (aaaa) em que a solicitação foi enviada. |
|
|
t_mon |
Mês de dois dígitos (mm) em que a solicitação foi enviada. |
|
|
t_day |
Dia de dois dígitos (dd) em que a solicitação foi enviada. |
|
|
t_hour |
Hora (HH, formato de 24 horas) em que a solicitação foi enviada. |
|
|
t_min |
Minuto (MM) em que a solicitação foi enviada. |
|
|
t_sec |
Segundo (SS) em que a solicitação foi enviada. |
|
Variáveis de processamento de imagem
Para um objeto de origem denominado oss://test-bucket/path1/path2/name.png, enviado em 2022-04-22 14:38:25, use as variáveis apresentadas na tabela abaixo.
|
Parâmetro |
Descrição |
Valor de exemplo |
|
bucket |
Nome do bucket onde o objeto de origem está armazenado. |
|
|
key |
Chave do objeto de origem dentro do bucket. Importante
Não defina os caminhos de saída e de origem como idênticos ao usar esta variável. Caso contrário, o objeto de origem poderá ser sobrescrito ou um loop infinito poderá ocorrer em um trabalho de processamento em lote. |
|
|
dirname |
Caminho do diretório do objeto de origem. Importante
Não defina os caminhos de saída e de origem como idênticos ao usar esta variável. Caso contrário, o objeto de origem poderá ser sobrescrito ou um loop infinito poderá ocorrer em um trabalho de processamento em lote. |
|
|
barename |
Nome do objeto de origem sem a sua extensão. Importante
Não defina os caminhos de saída e de origem como idênticos ao usar esta variável. Caso contrário, o objeto de origem poderá ser sobrescrito ou um loop infinito poderá ocorrer em um trabalho de processamento em lote. |
|
|
basename |
Nome do objeto de origem incluindo a sua extensão. Importante
Não defina os caminhos de saída e de origem como idênticos ao usar esta variável. Caso contrário, o objeto de origem poderá ser sobrescrito ou um loop infinito poderá ocorrer em um trabalho de processamento em lote. |
|
|
ext |
Extensão do objeto de origem. A extensão é obtida a partir do |
|
|
year |
Ano de quatro dígitos (aaaa) em que o objeto de origem foi enviado. |
|
|
mon |
Mês de dois dígitos (mm) em que o objeto de origem foi enviado. |
|
|
day |
Dia de dois dígitos (dd) em que o objeto de origem foi enviado. |
|
|
hour |
Hora (HH, formato de 24 horas) em que o objeto de origem foi enviado. |
|
|
min |
Minuto (MM) em que o objeto de origem foi enviado. |
|
|
sec |
Segundo (SS) em que o objeto de origem foi enviado. |
|
Variáveis de conversão de documentos
Na conversão de documentos, use variáveis como números de página e nomes de planilhas. Por exemplo, para converter um documento do Excel contendo uma planilha chamada sheet1 em imagens JPG, use as variáveis da tabela a seguir.
|
Parâmetro |
Descrição |
Valor de exemplo |
|
autoext |
Extensão do objeto de saída em uma tarefa de conversão de documentos. |
|
|
index |
Índice de saída, incrementado a partir de 1. Para documentos Word, PDF e PPT, esta variável representa o número da página. Para documentos Excel, segue o formato sheetindex_sheetsubindex. |
Para Word, PDF e PPT: Para Excel: |
|
sheetname |
Nome da planilha em um documento do Excel. |
|
|
sheetindex |
Índice da planilha em um documento do Excel, começando em 1. |
|
|
sheetsubindex |
Subíndice de uma planilha em um documento do Excel, começando em 1. |
|
Variáveis de processamento de mídia
No processamento de mídia, use variáveis como a extensão do contêiner e a resolução. Por exemplo, para transcodificar um vídeo chamado video.mp4 em segmentos ts com resolução de 1920x1080, use as variáveis listadas abaixo.
|
Parâmetro |
Descrição |
Valor de exemplo |
|
autoext |
Extensão do objeto de saída em uma tarefa de processamento de mídia. |
|
|
index |
Índice de saída, incrementado a partir de 1. Usado em cenários de múltiplas saídas, como transcodificação segmentada ou extração de quadros. |
|
|
streamindex |
ID do fluxo de áudio ou vídeo. Os IDs para fluxos de áudio e vídeo são incrementados independentemente a partir de 0. |
|
|
resolution |
Resolução definida para a transcodificação. Disponível apenas para transcodificação de vídeo. |
|
Uso da API REST
Se sua aplicação exigir um alto grau de personalização, chame diretamente a API RESTful, o que requer a escrita de código para calcular assinaturas manualmente.
Processe objetos adicionando parâmetros de processamento ou estilo a uma solicitação PostObject. Para mais informações, consulte Salvar como.
Exemplo 1: Conversão de formato de documento
O exemplo de API RESTful a seguir demonstra como adicionar parâmetros de processamento a uma solicitação PostObject para converter o formato de example.docx. Os parâmetros b (bucket) e o (objeto) da operação salvar como (sys/saveas) usam variáveis.
pages_MS0xMA: Converte as páginas 1 a 10 do documento.MS0xMAé o valor codificado em Base64 de "1-10".target_png: Converte o documento para o formato de imagem PNG.source_docx: Especifica que o tipo do objeto de origem é DOCX.-
sys/saveas: Salvar como.b_e2J1Y2tldH0: Após a conclusão da transcodificação, a variável {bucket} salva as imagens resultantes no bucket de origem.e2J1Y2tldH0é o valor codificado em Base64 de {bucket}.o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw: Salva o objeto no diretóriodoc_images. A chave do objeto usa a variável{index}, que corresponde ao número da página deexample.docx.ZG9jX2ltYWdlcy97aW5kZXh9LnBuZwé o valor codificado em Base64 dedoc_images/{index}.png.
POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
// Converts pages 1 to 10 of the example.docx object to PNG images. The processed objects are saved to oss://source-bucket/doc_images/page-number.png.
x-oss-async-process=doc/convert,pages_MS0xMA,target_png,source_docx|sys/saveas,b_e2J1Y2tldH0,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw
Exemplo 2: Transcodificação de vídeo
Este exemplo demonstra como transcodificar o objeto example.avi configurando múltiplos parâmetros de processamento.
f_mp4: Define o contêiner do arquivo de mídia transcodificado como MP4.vcodec_h265: Define o formato do fluxo de vídeo como H.265.s_1920x1080: Define a resolução como 1920x1080.vb_2000000: Define a taxa de bits de vídeo como 2 Mbps.fps_30: Define a taxa de quadros de vídeo como 30 fps.acodec_aac: Define o formato de codificação de áudio como AAC.ab_100000: Define a taxa de bits de áudio como 100 Kbps.sn_1: Desativa o fluxo de legendas.-
sys/saveas: Salvar como.b_e2J1Y2tldH0: Após a conclusão da transcodificação, o objeto resultante é salvo no bucket de origem usando a variável {bucket}.e2J1Y2tldH0é o valor codificado em Base64 de {bucket}.o_b3V0cHV0LnthdXRvZXh0fQ: A variável {autoext} adiciona automaticamente uma extensão ao objeto, resultando em um objeto salvo chamadooutput.mp4.b3V0cHV0LnthdXRvZXh0fQé o valor codificado em Base64 deoutput.{autoext}.
POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
x-oss-async-process=video/convert,f_mp4,vcodec_h265,s_1920x1080,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1|sys/saveas,b_e2J1Y2tldH0,o_b3V0cHV0LnthdXRvZXh0fQ