Código de amostra usando APIs do IBM Aspera para vários produtos e SDKs do IBM Aspera:

Várias linguagens de programação são propostas.
Documentação da API do IBM Aspera (selecione 24 itens por página na parte inferior).
A documentação do Aspera Transfer SDK contém exemplos de código.
Vídeo sobre o SDK de transferência
O site github do IBM Aspera Connect SDK contém exemplos sobre como usar o Aspera Connect SDK.
O IBM Aspera fornece dois tipos de APIs:
APIs do cliente:
SDKs incluem bibliotecas para serem usadas em aplicativos para transferência de arquivos
APIs de servidor:
APIs REST (com especificação OpenAPI) interagem com aplicações Aspera (Faspex, AoC, Node API, COS, etc...)
Dependendo do caso de uso, pode-se usar uma ou (frequentemente) várias dessas APIs.
Este repositório está estruturado assim:
web : um exemplo que mostra o uso do SDKd da web: o SDK do Aspera Connect e o SDK do Aspera HTTP Gateway
app : exemplos em vários idiomas usando o Aspera Transfer SDK e as APIs REST do Aspera Applications
Dentro de cada pasta de idioma, você encontrará:
README.md : um README específico para o idiomaMakefile : um makefile para executar as amostrassrc : código fontesrc/utils : classes auxiliaressrc/examples : programas de exemploOs programas de exemplo usarão endereços de servidor e credenciais de um arquivo de configuração YAML. Depois que o arquivo de configuração for criado, programas de amostra poderão ser executados diretamente.
Sistemas do tipo Unix : Linux, macOS... um Makefile é fornecido para executar as amostras.
Windows : Consulte Início rápido (Windows) abaixo. make pode não estar disponível. Use o Makefile como referência para executar os comandos manualmente.
Consulte Executando programas de amostra.
Na primeira execução do make : o Transfer SDK será baixado automaticamente.
Para baixar o SDK, execute: make sdk .
Consulte Arquivo de configuração: copie o arquivo config/config.tmpl para private/config.yaml e preencha os valores.
md private
copy configconfig.tmpl privateconfig.yaml
Defina o parâmetro misc.platform como windows-x86_64
Edite os parâmetros necessários em private/config.yaml , por exemplo, informações de conexão Faspex.
Nota: Sim, você também pode arrastar e soltar, clicar, copiar/colar e editar o arquivo com o Bloco de Notas, etc...
Prepare a pasta SDK
md tmp
Baixe o Aspera Transfer SDK (aqui) e extraia seu conteúdo para a pasta identificada por sdk_dir em config/paths.yaml : <main folder>/tmp/transfer_sdk
Nota: Certifique-se de que os arquivos identificados em
config/paths.yamlestejam na pasta extraída conforme esperado. Por exemplo, o seguinte arquivo deve existir:<main folder>/tmp/transfer_sdk/bin/asperatransferd
Execute as amostras: consulte Executando programas de amostra
Crie um arquivo de configuração conforme especificado em Arquivo de configuração. Nem todos os valores são obrigatórios, apenas aqueles necessários para os exemplos que você deseja executar.
Por exemplo, para executar uma amostra individual, use make .tested/<sample name here> :
$ cd app/python
$ make list
server aoc faspex faspex5 node shares node_v2
$ make .tested/faspex5 A execução de exemplos requer o download do daemon asperatransferd do SDK de transferência e algumas ferramentas para compilar o arquivo proto do SDK de transferência. Consulte SDK de transferência.
Para detalhes, consulte a receita no Makefile de cada idioma.
Um arquivo de configuração de modelo é fornecido: config/config.tmpl .
Copie o arquivo config/config.tmpl para private/config.yaml e preencha com seus próprios endereços de servidor, credenciais e parâmetros.
cp config/config.tmpl private/config.yaml
vi private/config.yamlNota: Embora o formato possa parecer com o arquivo de configuração do
ascli, um arquivo de configuração doasclinão é compatível com este. Você deve criar um novo.
Defina o parâmetro misc.platform para a arquitetura utilizada:
osx-arm64osx-x86_64windows-x86_64linux-x86_64linux-s390linux-arm64linux-ppc64leaix-ppc64 O parâmetro trsdk.url pode ser definido como grpc://127.0.0.1:55002 (especifique a porta local que o SDK usará).
A seção httpgw é usada apenas pelo exemplo web .
Outras seções são usadas pelos vários exemplos. Por exemplo, se quiser testar apenas a transferência COS usando o SDK de transferência, você poderá preencher apenas a seção cos e deixar as outras seções vazias.
Exemplo (com credenciais aleatórias):
misc :
platform : osx-x86_64
level : debug
transfer_regular : true
trsdk :
url : grpc://127.0.0.1:55002
level : trace
ascp_level : trace
web :
port : 9080
httpgw :
url : https://1.2.3.4/aspera/http-gwy
server :
user : aspera
pass : demoaspera
url : ssh://demo.asperasoft.com:33001
file_download : /aspera-test-dir-small/10MB.1
folder_upload : /Upload
node :
url : https://node.example.com:9092
verify : false
user : node_user
pass : _the_password_here_
folder_upload : /Upload
faspex :
url : https://faspex.example.com/aspera/faspex
user : faspex_user
pass : _the_password_here_
cos :
endpoint : https://s3.eu-de.cloud-object-storage.appdomain.cloud
bucket : my_bucket
key : _the_key_here_
crn : ' crn:v1:bluemix:public:cloud-object-storage:global:_the_crn_:: '
auth : https://iam.cloud.ibm.com/identity/token
coscreds :
bucket : mybucket
service_credential_file : ./service_creds.json
region : eu-de
aoc :
org : acme
user_email : [email protected]
private_key : /path/to/my_aoc_key
client_id : aspera.global-cli-client
client_secret : frpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb
workspace : Default
shared_inbox : TheSharedInboxObservação: seções com URLs HTTPS possuem um parâmetro
verify. Defina-o comofalsepara desabilitar a validação de certificado de servidor para ambientes de desenvolvimento.
Alguns caminhos relativos são definidos em config/paths.yaml (mantenha esses valores intactos).
Os seguintes níveis de log podem ser definidos:
misc.level : nível de log de código de amostra: error warning info debugtrsdk.level : nível de log asperatransferd: trace info debug warning error fatal panictrsdk.ascp_level : nível de log ascp: info debug trace Alguns exemplos suportam a configuração da porta como 0 (zero) em trsdk.url para usar uma porta aleatória.
O aplicativo de exemplo gera um arquivo asperatransferd.conf fornecido para o daemon SDK de transferência. O nível de log é obtido do arquivo de configuração yaml geral.
O Transfer SDK é um serviço gRPC que permite transferir arquivos em um aplicativo. É uma API cliente que pode ser usada em vários idiomas.
O arquivo transfer.proto é descrito na interface de chamada de procedimento remoto fornecida pelo daemon asperatransferd .
+----------------+
+ transfer.proto +
+----------------+
|
[protoc]
|
v
+----------------------+ +------------+
+ generated stub code + + your code +
+----------------------+ +------------+
| [combine] |
+-----+----------------------+
|
v
+------------+ +---------------------+
| client app |-----[connect to]---->| Transfer SDK daemon |
+------------+ +---------------------+
| ^ | [executes]
+-------------[executes]----------------+ v
| +------+
[or other method, systemd, or manual]---[executes]------+ | ascp |
+------+
Os aplicativos cliente devem usar os arquivos de origem do cliente gerados a partir do arquivo transfer.proto .
O código gerado (stub) é fornecido por conveniência no Transfer SDK para vários idiomas. Ele pode ser usado diretamente ou o desenvolvedor pode optar por gerá-los a partir do arquivo transfer.proto . Para produção e compatibilidade futura, é recomendado gerar o código stub do arquivo transfer.proto . Se você mesmo gerar o código stub, poderá se beneficiar do suporte para plataformas e versões mais recentes.
A maioria dos exemplos aqui gera o código stub do arquivo transfer.proto .
Consulte o site do GRPC para obter instruções sobre como gerar o código.
Os programas de amostra usam classes auxiliares localizadas no pacote utils :
Configuration lê os parâmetros de configuração de config.yaml para facilitar a execução de qualquer amostra.TransferClient cria um arquivo de configuração e inicia o daemon Transfer SDK: asperatransferdRest para chamadas de API simples em APIs Rest.O Transfer SDK requer os seguintes arquivos de tempo de execução:
asperatransferd : executável que fornece o serviço gRPCascp : executável que realmente transfere os arquivosascp4 : outra versão do ascpasync : executável para operações assíncronaslibafwsfeed : uma biblioteca para ascp para web socketsaspera-license : o arquivo de licença para ascp (uso gratuito)Arquivos opcionais:
aspera.conf : o arquivo de configuração do ascpproduct-info.mf : arquivo XML com informações sobre a versão do SDKaspera.conf Este arquivo é opcional para ascp quando usado no modo cliente.
O conteúdo mínimo é:
< CONF />É possível definir alguns parâmetros do cliente, como:
<? xml version = ' 1.0 ' encoding = ' UTF-8 ' ?>
< CONF version = " 2 " >
< default >
< file_system >
< storage_rc >< adaptive >true</ adaptive ></ storage_rc >
< resume_suffix >.aspera-ckpt</ resume_suffix >
< partial_file_suffix >.partial</ partial_file_suffix >
< replace_illegal_chars >_</ replace_illegal_chars >
</ file_system >
</ default >
</ CONF > asperatransferd é um daemon que deve ser iniciado antes de usar o Transfer SDK. Ele impulsiona a transferência de arquivos entre dois endpoints usando ascp incorporado. O aplicativo cliente se conectará a ele usando gRPC na porta especificada.
A forma de iniciar o daemon não está especificada no SDK. Os desenvolvedores têm a opção de iniciá-lo manualmente em um terminal separado ou criar um arquivo de configuração estático e iniciá-lo usando outro método (por exemplo, um serviço systemd).
Os exemplos fornecidos aqui iniciam o daemon usando a classe TransferClient .
Quando asperatransferd é iniciado, se nenhum arquivo de configuração for fornecido com a opção --config , ele espera encontrar ascp , ascp4 , async , libafwsfeed , aspera-license em pastas específicas. Para colocar todos os arquivos na mesma pasta, o arquivo de configuração deve ser fornecido e as pastas devem ser definidas.
O Makefile fornecido nos exemplos baixa o SDK e o extrai em uma única pasta, então os exemplos geram o arquivo de configuração de acordo.
Consulte a documentação do HSTS para criar um usuário e obter as credenciais.
Normalmente, um usuário da API do nó é criado assim:
/opt/aspera/bin/asnodeadmin -a -u my_node_username -p my_node_password -x my_transfer_userNota: As credenciais da chave de acesso (id e segredo) também podem ser usadas para o usuário da API do nó.
Compartilhamentos fornece as seguintes APIs:
<shares url>/node_api .Os mesmos exemplos da API Node podem ser usados para Shares .
Para o Aspera on Cloud, vários itens de configuração são necessários:
org : A Organização AoC, ou seja, o nome antes de .ibmaspera.com na URLuser_email : o IBMid do usuárioprivate_key : o caminho para o arquivo PEM que contém a chave privada do usuário. O usuário configurou a chave pública associada em seu perfil de usuário AoC.client_id : (veja abaixo) O identificador do aplicativo clienteclient_secret : (veja abaixo) O segredo do aplicativo cliente client_id e client_secret podem ser:
aspera CLI:aspera.global-cli-clientfrpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb Por exemplo, para extrair os do Aspera Connect (Drive): strings asperaconnect|grep -B1 '^aspera.drive$'
Para testar transferências para COS, você precisará de:
Este é o padrão no exemplo.
Ou também é possível usar:
private/service_creds.json , siga: obtenha credenciais de serviço