Cargar activos
Información general
En este tutorial se explica cómo cargar activos en Frame.io. Frame.io puede gestionar todos los tipos de archivos, no solo vídeo, sino también scripts, imágenes, mapas y archivos de referencia. En términos más técnicos, un activo en Frame.io es una representación sólida de un archivo en S3 y su contexto en Frame.io, incluidas las transcodificaciones, el contexto de usuario/equipo/proyecto y los metadatos. Para obtener más información sobre los activos, consulte la definición del activo.
Jerarquías principales
También es útil saber cómo Frame.io estructura sus modelos principales.
Las cuentas, a las que pertenecen los usuarios, tienen muchos proyectos, que contienen activos. Los equipos solo están disponibles solo para cuentas de Enterprise, y proporcionan un nivel adicional de separación lógica. Los activos no “saben” a qué equipo pertenecen, solo el proyecto y la cuenta a los que pertenecen, pero los proyectos son propiedad estricta de los equipos, y no de las cuentas, lo que hace que los equipos sean una parte integral del proceso de carga de activos.
Requisitos previos
Para este tutorial, necesitará:
- Una cuenta de Frame.io con un token de desarrollador (los tokens se explican a continuación)
- SDK de Python para Frame.io
Cargar un activo
En esta sección se explican los pasos para cargar un activo.
- Crear un token de desarrollador en developer.frame.io con los siguientes ámbitos:
¿Necesita ayuda para crear un token de API?
Revise las instrucciones que aparecen aquí.
- Localice un destino para su activo. Como mínimo, los activos deben colocarse dentro de un proyecto. Necesitará obtener el ID del activo raíz (
root_asset_id) de un proyecto o el ID de activo de una carpeta para poder especificar la ubicación en la jerarquía de archivos en la que desea realizar la carga.
NOTA:
No puede cargar solo con un ID de proyecto. Para cargar a la raíz de su proyecto, especifique el root_asset_id en su solicitud.
En general, necesita recuperar (en el orden especificado):
- Los ID de cuenta y elegir una cuenta
- Los ID de equipo y elegir un equipo
- Los proyectos asociados con un equipo
- El ID de proyecto para el proyecto con el que desea trabajar
- El ID de activo raíz o un ID de carpeta
Puede realizar la carga directamente en la raíz de un proyecto con el root_asset_id.
Enumerar activos
Para elegir dónde desea cargar su activo nuevo, puede usar la API para enumerar todos los activos que hay en un proyecto o carpeta dentro de un proyecto. Si un activo es una carpeta, contendrá activos secundarios, que también pueden ser archivos y carpetas. Al enumerar información de activos, puede usar cualquier ID de activo, pero si desea revisar todo lo asociado con un proyecto, use el root_asset_id.
De la lista de activos que se devuelve, puede usar un ID para cualquier activo que sea una carpeta, o el ID de activo raíz. Usará este ID para marcar dónde desea cargar su activo nuevo.
Cargar activo
En este ejemplo, vamos a cargar un archivo nuevo. Envíe su solicitud con la siguiente información:
curl —request POST \
—url https://api.frame.io/v2/assets/<asset_id>/children \ —header ‘authorization: Bearer<dev_token>’ \
—header ‘content-type: application/json’ \
—data ’{“filesize”:200000,“filetype”:“video/mp4”,“name”:“test”,“source”:{“url”:“URL_FOR_VIDEO”},“type”:“file”}’</dev_token></asset_id>```
Las URL de activos caducarán
Las URL que obtiene de la llamada API de creación de activos están firmadas previamente para autorizar su carga, pero caducarán después de 24 horas.
Crear su propio cargador de archivos
Si desea crear su propio cargador, para obtener el mejor rendimiento, se recomienda cargar fragmentos en paralelo. Cada fragmento debe enviarse con PUT directamente a las URL de Amazon S3 proporcionadas en la respuesta de la API de Frame.io. Los fragmentos del archivo deben coincidir con el orden de las upload_urls proporcionadas, ya que dictan la secuencia del activo final concatenado y transcodificado. Esto significa que la primera URL toma el primer fragmento, la segunda URL toma el segundo fragmento, y así sucesivamente.
Ejemplo de pseudocódigo
Puede ver un ejemplo de cómo se gestiona todo esto en nuestro SDK de Python aquí.
Los errores de AWS tienen formato XML
Tenga en cuenta que cualquier error que obtenga en esta fase provendrá directamente de AWS y, por lo tanto, tendrá formato XML, no la gestión de errores JSON estándar de Frame.io. Por lo general, recomendamos crear lógica de reintento para estas cargas en cualquier uso de producción, ya que los archivos cargados de forma incompleta (es decir, archivos con fragmentos que faltan) no se transcodificarán y no se mostrarán en Frame.io
Eso es todo. Una vez que haya completado las llamadas PUT a las upload_urls, tendrá un activo nuevo en Frame.io.