Fazer upload de ativos
Visão geral
Este tutorial aborda como fazer upload de ativos no Frame.io.O Frame.io pode lidar com todos os tipos de arquivo, não apenas vídeos, mas também scripts, imagens, mapas e arquivos de referência.Em termos mais técnicos, um ativo no Frame.io é uma representação robusta de um arquivo no S3 e seu contexto no Frame.io, incluindo transcodificações, contexto de usuário/equipe/projeto e metadados.Para obter mais informações sobre ativos, consulte a definição de recursos.
Hierarquias principais
Também é útil saber como o Frame.io estrutura seus modelos principais.
Contas, às quais Usuários pertencem, têm muitos Projetos, que contêm Ativos.Equipes estão disponíveis apenas para contas corporativas e fornecem um nível adicional de separação lógica.Os ativos não “sabem” a qual equipe pertencem, apenas a qual projeto e conta, mas os projetos são estritamente de propriedade de equipes, não de contas, tornando as equipes parte integral do processo de upload de ativos.
Pré-requisitos
Para este tutorial, você precisará de:
- Uma conta Frame.io com um token de desenvolvedor (tokens são explicados abaixo)
- Frame.io Python SDK
Fazer upload de um ativo
Esta seção orienta você pelas etapas para fazer upload de um ativo.
- Crie um token de desenvolvedor em developer.frame.io com os seguintes escopos:
Precisa de ajuda para criar um token de API?
Consulte as instruções aqui.
- Localize um destino para o ativo.No mínimo, os ativos precisam ser colocados em um Projeto.Você precisa recuperar o ID do ativo raiz (
root_asset_id) de um projeto ou um ID de ativo de uma pasta para especificar a localização na hierarquia de arquivos para a qual deseja fazer upload.
OBSERVAÇÃO:
Não é possível fazer upload apenas com um ID de projeto.Para fazer upload na raiz do projeto, especifique o root_asset_id na solicitação.
Em geral, você precisa recuperar (na ordem especificada):
- ID(s) de conta e escolher uma conta
- ID(s) de equipe e escolher uma equipe
- projetos associados a uma equipe
- o ID do projeto para o projeto com o qual você quer trabalhar
- o ID do ativo raiz ou um ID de pasta
Você pode fazer upload diretamente na raiz de um projeto usando o root_asset_id.
Listar ativos
Para escolher onde você quer fazer upload do novo ativo, você pode usar a API para listar todos os ativos em um projeto ou pasta dentro de um projeto.Se um ativo é uma pasta, ele contém ativos filhos, que também podem ser arquivos e pastas.Ao listar informações de ativos, você pode usar qualquer ID de ativo, mas se quiser revisar tudo associado a um projeto, use o root_asset_id.
python-sdk from frameioclient import FrameioClient import os
ASSET_ID = "" TOKEN = ""
client = FrameioClient(TOKEN) response_list = client.assets.get_children(ASSET_ID) assets = response_list.results
for item in assets: print(item[‘id’], item[‘name’])
Na lista de ativos retornada, você pode usar um ID para qualquer ativo que seja uma pasta, ou o ID do ativo raiz.Você vai usar este ID para marcar onde quer fazer upload do novo ativo.
Fazer upload de ativo
Neste exemplo, vamos fazer upload de um novo arquivo.Você envia a solicitação com as seguintes informações:
URLs de ativos vão expirar
Os URLs retornadas da chamada de API de criação de ativos são pré-assinadas para autorizar o upload, mas expiram após 24 horas.
Criar seu próprio carregador de arquivos
Se quiser criar seu próprio carregador, para melhor desempenho, recomenda-se fazer upload de blocos em paralelo.Cada bloco deve ser PUT diretamente para os URLs do Amazon S3 fornecidos na resposta da API do Frame.io.Os blocos de arquivo devem corresponder à ordem dos upload_urls fornecidos, pois eles determinam a sequência do ativo final concatenado e transcodificado. Isso significa que o 1º URL recebe o 1º bloco, o 2º URL recebe o 2º bloco, e assim por diante.
Exemplo de pseudocódigo
Os cabeçalhos para cada solicitação ao S3 devem incluir o filetype do novo ativo exatamente como foi retornado da chamada inicial para a API do Frame.io, bem como um cabeçalho de privacidade adicional:
Você pode ver um exemplo de como isso é tratado em nosso SDK Python aqui.
Os erros do AWS são formatados em XML
Note que quaisquer erros neste estágio virão diretamente da AWS e, portanto, serão formatados como XML, e não no tratamento de erro JSON padrão do Frame.io.Geralmente recomendamos criar lógica de repetição para esses uploads em qualquer uso de produção, pois arquivos com upload incompleto (ou seja, arquivos com fragmentos ausentes) falharão na transcodificação e exibição no Frame.io
Pronto!Depois de concluir as chamadas PUT para os upload_urls, você terá um novo ativo no Frame.io.