Al utilizar la función de procesamiento de datos, cada objeto desencadena una tarea. Para cada tarea, debe especificar una ruta de guardado para el objeto procesado. Con el fin de evitar que los objetos se sobrescriban, es necesario usar una ruta de salida dinámica. Puede emplear variables para hacer referencia a información del objeto de origen, como su bucket, clave de objeto o momento de carga. Por ejemplo, en una tarea de extracción de fotogramas de video, puede establecer la ruta de salida en oss://test-bucket/{dirname}/{barename}_output.{autoext}. Esto guarda el objeto procesado en el mismo directorio que el objeto de origen, lo nombra como source-object-name_output y agrega automáticamente la extensión correcta.
Casos de uso
Casos de uso en la consola
-
Tareas: Puede hacer referencia a la información del objeto de origen en la ruta de salida de una tarea de procesamiento. Por ejemplo, para convertir un documento a imágenes JPG, establezca la ruta de salida en
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}. Durante el procesamiento,{autoext}se reemplaza porjpg. Las imágenes resultantes se guardan enoss://test-bucket/output/source-directory/source-filename/image-sequence-number.jpg.En el cuadro de diálogo Create Task, seleccione
doc_to_jpgen Style. Un mensaje debajo de Output Path indica que debe introducir una clave de objeto completa; dicha clave puede incluir variables, y las rutas de entrada y salida deben ser diferentes. En la sección Notification Configuration, puede seleccionar Message Queue. Una vez completada la configuración, haga clic en OK. -
Procesamiento por lotes: Al crear un trabajo de procesamiento por lotes, el sistema genera una tarea para cada objeto existente. Para evitar la sobrescritura de datos, se recomienda usar variables en la ruta de salida. Por ejemplo, para extraer fotogramas de un video y guardarlos como imágenes PNG, establezca la ruta de salida en
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}. Durante el procesamiento,{autoext}se reemplaza porpng. Las imágenes PNG generadas se guardan enoss://test-bucket/output/source-directory/source-filename/frame-number.png.Después de configurar la ruta de salida en la sección Output Configuration, asegúrese de que la ruta de salida sea distinta de la ruta de entrada si utiliza las variables
key,barenameobasename. Esto evita que se sobrescriba el objeto de origen y previene la creación de bucles infinitos. En la sección Permission Configuration, seleccione AliyunIMMBatchTriggerRole (Default Role) en Service Role y luego haga clic en OK. -
Disparadores: La creación de un disparador genera una tarea para cada nuevo objeto. Para evitar la sobrescritura de objetos, se recomienda usar variables en la ruta de salida. Por ejemplo, si se crea un disparador de conversión de documentos para convertirlos a imágenes JPG, establezca la ruta de salida en
oss://test-bucket/output/{dirname}/{barename}/{index}.{autoext}. Durante el procesamiento,{autoext}se reemplaza porjpg. Las imágenes JPG generadas se guardan enoss://test-bucket/output/source-directory/source-filename/image-sequence-number.jpg.Si utiliza las variables de clave de objeto, barename o basename, asegúrese de que la ruta de salida sea diferente de la ruta de entrada para prevenir la sobrescritura de objetos. En la sección Permission Configuration, seleccione AliyunIMMBatchTriggerRole (Default Role) en Service Role y luego haga clic en OK.
Casos de uso de la API
Guardar como (
sys/saveas): Los parámetros b (bucket) y o (objeto) de la operación guardar como (sys/saveas) admiten variables. Por ejemplo, para convertir las páginas 1 a 10 de un documento llamadoexample.docxa imágenes PNG, puede establecer el parámetrosys/saveasenb_e2J1Y2tldH0,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw. En este parámetro,e2J1Y2tldH0es el valor codificado en Base64 de {bucket}, yZG9jX2ltYWdlcy97aW5kZXh9LnBuZwes el valor codificado en Base64 dedoc_images/{index}.png. Las imágenes convertidas se guardan entonces en el mismo bucket que el objeto de origen, en la rutadoc_images/index.png.Tareas: La ruta de salida para las tareas admite variables. Por ejemplo, al llamar a la operación CreateOfficeConversionTask para crear una tarea de conversión de documentos, debe establecer el parámetro TargetURI en la ruta de salida completa, incluida la extensión. El TargetURI puede contener variables, como
oss://test-bucket/output/{dirname}/{barename}/{index}.jpg.
Notas
Para el procesamiento por lotes y los disparadores, si la ruta de salida no termina con una barra diagonal (
/), la clave del objeto debe incluir como mínimo una variable. Esto evita que múltiples objetos de salida se sobrescriban entre sí.La ruta de salida de una tarea no puede terminar con una barra diagonal (
/), pero sí puede contener variables.
Variables relacionadas con tareas
También puede usar la marca de tiempo de una solicitud de procesamiento síncrono o asíncrono como variable. Por ejemplo, si envía una solicitud de procesamiento a las 2022-09-01T02:06:57.798Z, puede utilizar las variables que se muestran en la siguiente tabla.
|
Parámetro |
Descripción |
Valor de ejemplo |
|
t_year |
Año de cuatro dígitos (aaaa) en que se envió la solicitud. |
|
|
t_mon |
Mes de dos dígitos (mm) en que se envió la solicitud. |
|
|
t_day |
Día de dos dígitos (dd) en que se envió la solicitud. |
|
|
t_hour |
Hora (HH, formato de 24 horas) en que se envió la solicitud. |
|
|
t_min |
Minuto (MM) en que se envió la solicitud. |
|
|
t_sec |
Segundo (SS) en que se envió la solicitud. |
|
Variables de procesamiento de imágenes
Para un objeto de origen llamado oss://test-bucket/path1/path2/name.png que se cargó a las 2022-04-22 14:38:25, puede usar las variables que se muestran en la siguiente tabla.
|
Parámetro |
Descripción |
Valor de ejemplo |
|
bucket |
Nombre del bucket donde se almacena el objeto de origen. |
|
|
key |
Clave del objeto de origen dentro del bucket. Importante
No configure las rutas de salida y de origen como idénticas al usar esta variable. De lo contrario, podría sobrescribir el objeto de origen o provocar un bucle infinito en un trabajo de procesamiento por lotes. |
|
|
dirname |
Ruta del directorio del objeto de origen. Importante
No configure las rutas de salida y de origen como idénticas al usar esta variable. De lo contrario, podría sobrescribir el objeto de origen o provocar un bucle infinito en un trabajo de procesamiento por lotes. |
|
|
barename |
Nombre del objeto de origen sin su extensión. Importante
No configure las rutas de salida y de origen como idénticas al usar esta variable. De lo contrario, podría sobrescribir el objeto de origen o provocar un bucle infinito en un trabajo de procesamiento por lotes. |
|
|
basename |
Nombre del objeto de origen con su extensión. Importante
No configure las rutas de salida y de origen como idénticas al usar esta variable. De lo contrario, podría sobrescribir el objeto de origen o provocar un bucle infinito en un trabajo de procesamiento por lotes. |
|
|
ext |
Extensión del objeto de origen. La extensión se obtiene del |
|
|
year |
Año de cuatro dígitos (aaaa) en que se cargó el objeto de origen. |
|
|
mon |
Mes de dos dígitos (mm) en que se cargó el objeto de origen. |
|
|
day |
Día de dos dígitos (dd) en que se cargó el objeto de origen. |
|
|
hour |
Hora (HH, formato de 24 horas) en que se cargó el objeto de origen. |
|
|
min |
Minuto (MM) en que se cargó el objeto de origen. |
|
|
sec |
Segundo (SS) en que se cargó el objeto de origen. |
|
Variables de conversión de documentos
Para la conversión de documentos, puede usar variables como números de página y nombres de hojas. Por ejemplo, para convertir un documento de Excel que contiene una hoja llamada sheet1 a imágenes JPG, puede utilizar las variables que se muestran en la siguiente tabla.
|
Parámetro |
Descripción |
Valor de ejemplo |
|
autoext |
Extensión del objeto de salida en una tarea de conversión de documentos. |
|
|
index |
Índice de salida, que se incrementa a partir de 1. Para documentos de Word, PDF y PPT, esta variable representa el número de página. Para documentos de Excel, tiene el formato sheetindex_sheetsubindex. |
Para Word, PDF y PPT: Para Excel: |
|
sheetname |
Nombre de la hoja en un documento de Excel. |
|
|
sheetindex |
Índice de la hoja en un documento de Excel, comenzando desde 1. |
|
|
sheetsubindex |
Subíndice de una hoja en un documento de Excel, comenzando desde 1. |
|
Variables de procesamiento de medios
Para el procesamiento de medios, puede usar variables como la extensión del contenedor y la resolución. Por ejemplo, para transcodificar un video llamado video.mp4 a segmentos ts con una resolución de 1920x1080, puede utilizar las variables que se muestran en la siguiente tabla.
|
Parámetro |
Descripción |
Valor de ejemplo |
|
autoext |
Extensión del objeto de salida en una tarea de procesamiento de medios. |
|
|
index |
Índice de salida, que se incrementa a partir de 1. Se utiliza en escenarios de salida múltiple, como la transcodificación segmentada o la extracción de fotogramas. |
|
|
streamindex |
ID de la secuencia de audio o video. Los ID de las secuencias de audio y video se incrementan de forma independiente a partir de 0. |
|
|
resolution |
Resolución configurada para la transcodificación. Solo está disponible para la transcodificación de video. |
|
Uso de la API REST
Si su aplicación requiere un alto grado de personalización, puede llamar directamente a la API RESTful, lo cual implica escribir código para calcular las firmas manualmente.
Puede procesar objetos agregando parámetros de procesamiento o de estilo a una solicitud PostObject. Para obtener más información, consulte Save as.
Ejemplo 1: Conversión de formato de documento
El siguiente ejemplo de API RESTful muestra cómo agregar parámetros de procesamiento a una solicitud PostObject para convertir el formato de example.docx. Los parámetros b (bucket) y o (objeto) de la operación guardar como (sys/saveas) utilizan variables.
pages_MS0xMA: Convierte las páginas 1 a 10 del documento.MS0xMAes el valor codificado en Base64 de "1-10".target_png: Convierte el documento al formato de imagen PNG.source_docx: Especifica que el tipo de objeto de origen es DOCX.-
sys/saveas: Guardar como.b_e2J1Y2tldH0: Una vez completada la transcodificación, la variable {bucket} guarda las imágenes resultantes en el bucket de origen.e2J1Y2tldH0es el valor codificado en Base64 de {bucket}.o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw: Guarda el objeto en el directoriodoc_images. La clave del objeto usa la variable{index}, que corresponde al número de página deexample.docx.ZG9jX2ltYWdlcy97aW5kZXh9LnBuZwes el valor codificado en 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
Ejemplo 2: Transcodificación de video
Este ejemplo demuestra cómo transcodificar el objeto example.avi mediante la configuración de múltiples parámetros de procesamiento.
f_mp4: Establece el contenedor del archivo de medios transcodificado en MP4.vcodec_h265: Establece el formato de la secuencia de video en H.265.s_1920x1080: Establece la resolución en 1920x1080.vb_2000000: Establece la tasa de bits de video en 2 Mbps.fps_30: Establece la tasa de fotogramas de video en 30 fps.acodec_aac: Establece el formato de codificación de audio en AAC.ab_100000: Establece la tasa de bits de audio en 100 Kbps.sn_1: Deshabilita la secuencia de subtítulos.-
sys/saveas: Guardar como.b_e2J1Y2tldH0: Una vez completada la transcodificación, el objeto resultante se guarda en el bucket de origen mediante la variable {bucket}.e2J1Y2tldH0es el valor codificado en Base64 de {bucket}.o_b3V0cHV0LnthdXRvZXh0fQ: La variable {autoext} agrega automáticamente una extensión al objeto, lo que da como resultado un objeto guardado con el nombreoutput.mp4.b3V0cHV0LnthdXRvZXh0fQes el valor codificado en 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