Código de muestra que utiliza las API de IBM Aspera para varios productos y SDK de IBM Aspera:
Se proponen varios lenguajes de programación.
Documentación de IBM Aspera API (seleccione 24 elementos por página en la parte inferior).
La documentación del SDK de Aspera Transfer contiene ejemplos de código.
Vídeo sobre Transfer SDK
El sitio github de IBM Aspera Connect SDK contiene ejemplos sobre el uso del SDK de Aspera Connect.
IBM Aspera proporciona dos tipos de API:
API de cliente:
Los SDK incluyen bibliotecas que se utilizarán en aplicaciones para transferir archivos.
API de servidor:
Las API REST (con especificación OpenAPI) interactúan con aplicaciones Aspera (Faspex, AoC, Node API, COS, etc.)
Dependiendo del caso de uso, se podría utilizar una o (a menudo) varias de esas API.
Este repositorio está estructurado así:
web
: un ejemplo que muestra el uso del SDKd web: tanto el SDK de Aspera Connect como el SDK de Aspera HTTP Gateway
app
: ejemplos en varios idiomas utilizando Aspera Transfer SDK y las API REST de Aspera Applications
Dentro de cada carpeta de idioma, encontrará:
README.md
: un README específico para el idiomaMakefile
: un archivo MAKE para ejecutar las muestras.src
: código fuentesrc/utils
: clases auxiliaressrc/examples
: programas de muestraLos programas de muestra utilizarán direcciones de servidor y credenciales de un archivo de configuración YAML. Una vez creado el archivo de configuración, los programas de muestra se pueden ejecutar directamente.
Sistemas tipo Unix : Linux, macOS... se proporciona un Makefile
para ejecutar las muestras.
Windows : consulte Inicio rápido (Windows) a continuación. Es posible make
no esté disponible. Utilice el Makefile
como referencia para ejecutar los comandos manualmente.
Consulte Ejecución de programas de muestra.
En la primera ejecución de make
: Transfer SDK se descargará automáticamente.
Para descargar el SDK, ejecute: make sdk
.
Consulte Archivo de configuración: copie el archivo config/config.tmpl
en private/config.yaml
y complete los valores.
md private
copy configconfig.tmpl privateconfig.yaml
Establezca el parámetro misc.platform
en windows-x86_64
Edite los parámetros requeridos en private/config.yaml
, por ejemplo, la información de conexión de Faspex.
Nota: Sí, también puede arrastrar y soltar, hacer clic, copiar/pegar y editar el archivo con el Bloc de notas, etc.
Prepare la carpeta SDK
md tmp
Descargue el SDK de Aspera Transfer (aquí) y extraiga su contenido a la carpeta identificada por sdk_dir
en config/paths.yaml
:
Nota: Asegúrese de que los archivos identificados en
config/paths.yaml
estén en la carpeta extraída como se esperaba. Por ejemplo, debe existir el siguiente archivo:
/tmp/transfer_sdk/bin/asperatransferd
Ejecute los ejemplos: consulte Ejecución de programas de ejemplo
Cree un archivo de configuración como se especifica en Archivo de configuración. No todos los valores son obligatorios, sólo los necesarios para los ejemplos que desea ejecutar.
Por ejemplo, para ejecutar una muestra individual, utilice make .tested/
:
$ cd app/python
$ make list
server aoc faspex faspex5 node shares node_v2
$ make .tested/faspex5
La ejecución de ejemplos requiere descargar el demonio de Transfer SDK asperatransferd
y algunas herramientas para compilar el archivo proto del SDK de transferencia; consulte Transfer SDK.
Para más detalles, consulte la receta en el Makefile
de cada idioma.
Se proporciona un archivo de configuración de plantilla: config/config.tmpl
.
Copie el archivo config/config.tmpl
en private/config.yaml
y rellénelo con sus propias direcciones, credenciales y parámetros de servidor.
cp config/config.tmpl private/config.yaml
vi private/config.yaml
Nota: Aunque el formato puede parecerse al archivo de configuración de
ascli
, un archivo de configuración deascli
no es compatible con este. Debes crear uno nuevo.
Establezca el parámetro misc.platform
según la arquitectura utilizada:
osx-arm64
osx-x86_64
windows-x86_64
linux-x86_64
linux-s390
linux-arm64
linux-ppc64le
aix-ppc64
El parámetro trsdk.url
se puede configurar en grpc://127.0.0.1:55002
(especifique el puerto local que utilizará el SDK).
La sección httpgw
se utiliza únicamente en el ejemplo web
.
Otras secciones son utilizadas por los diversos ejemplos. Por ejemplo, si desea probar solo la transferencia COS utilizando Transfer SDK, puede completar solo la sección cos
y dejar las demás secciones vacías.
Ejemplo (con credenciales aleatorias):
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 : TheSharedInbox
Nota: Las secciones con URL HTTPS tienen un parámetro
verify
. Configúrelo enfalse
para deshabilitar la validación de certificados del servidor para entornos de desarrollo.
Algunas rutas relativas se definen en config/paths.yaml
(mantenga esos valores intactos).
Se pueden configurar los siguientes niveles de registro:
misc.level
: nivel de registro de código de muestra: error
warning
info
debug
trsdk.level
: nivel de registro de asperatransferd: error
warning
info
debug
trace
panic
fatal
trsdk.ascp_level
: nivel de registro ascp: info
debug
trace
Algunos ejemplos admiten la configuración del puerto en 0
(cero) en trsdk.url
para utilizar un puerto aleatorio.
La aplicación de muestra genera un archivo asperatransferd.conf
proporcionado al demonio SDK de transferencia, el nivel de registro se toma del archivo de configuración general yaml.
Transfer SDK es un servicio gRPC que le permite transferir archivos en una aplicación. Es una API de cliente que se puede utilizar en varios idiomas.
El archivo transfer.proto
se describe en la interfaz de llamada a procedimiento remoto proporcionada por el demonio 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 |
+------+
Las aplicaciones cliente deben utilizar los archivos fuente del cliente generados a partir del archivo transfer.proto
.
El código generado (stub) se proporciona para mayor comodidad en Transfer SDK para varios idiomas. Se puede utilizar directamente o el desarrollador puede optar por generarlos desde el archivo transfer.proto
. Para producción y compatibilidad futura, se recomienda generar el código auxiliar a partir del archivo transfer.proto
. Si genera código auxiliar usted mismo, podrá beneficiarse del soporte para las últimas plataformas y versiones.
La mayoría de los ejemplos aquí generan el código auxiliar a partir del archivo transfer.proto
.
Consulte el sitio web de GRPC para obtener instrucciones sobre cómo generar el código.
Los programas de muestra utilizan clases auxiliares ubicadas en utils
del paquete:
Configuration
lee los parámetros de configuración de config.yaml
para que sea más fácil ejecutar cualquier muestra.TransferClient
crea un archivo de configuración e inicia el demonio Transfer SDK: asperatransferd
Rest
para llamadas API simples en API Rest.Transfer SDK requiere los siguientes archivos de ejecución:
asperatransferd
: ejecutable que proporciona el servicio gRPCascp
: ejecutable que realmente transfiere los archivosascp4
: otra versión de ascpasync
: ejecutable para operaciones asíncronaslibafwsfeed
: una biblioteca para ascp
para sockets webaspera-license
: el archivo de licencia para ascp
(uso gratuito)Archivos opcionales:
aspera.conf
: el archivo de configuración para ascp
product-info.mf
: archivo XML con información sobre la versión del SDKaspera.conf
Este archivo es opcional para ascp
cuando se usa en modo cliente.
El contenido mínimo es:
< CONF />
Es posible configurar algunos parámetros del 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
es un demonio que debe iniciarse antes de utilizar Transfer SDK. Impulsa la transferencia de archivos entre dos puntos finales mediante ascp
integrado. La aplicación cliente se conectará mediante gRPC en el puerto especificado.
La forma de iniciar el demonio no está especificada en el SDK. Los desarrolladores tienen la opción de iniciarlo manualmente en una terminal separada o crear un archivo de configuración estático e iniciarlo usando otro método (por ejemplo, un servicio systemd).
Los ejemplos proporcionados aquí inician el demonio usando la clase TransferClient
.
Cuando se inicia asperatransferd
, si no se proporciona ningún archivo de configuración con la opción --config
, entonces espera encontrar ascp
, ascp4
, async
, libafwsfeed
, aspera-license
en carpetas específicas. Para colocar todos los archivos en la misma carpeta, se debe proporcionar el archivo de configuración y configurar las carpetas.
El Makefile proporcionado en los ejemplos descarga el SDK y lo extrae en una sola carpeta, luego los ejemplos generan el archivo de configuración en consecuencia.
Consulte la documentación de HSTS para crear un usuario y obtener las credenciales.
Normalmente, un usuario de API de nodo se crea así:
/opt/aspera/bin/asnodeadmin -a -u my_node_username -p my_node_password -x my_transfer_user
Nota: Las credenciales de clave de acceso (id y secreto) también se pueden utilizar para el usuario de la API del nodo.
Shares proporciona las siguientes API:
/node_api
.Los mismos ejemplos que para Node API se pueden utilizar para Shares .
Para Aspera on Cloud, se requieren varios elementos de configuración:
org
: La organización AoC, es decir, el nombre antes de .ibmaspera.com
en la URLuser_email
: el IBMid del usuarioprivate_key
: la ruta al archivo PEM que contiene la clave privada del usuario. El usuario configuró la clave pública asociada en su perfil de Usuario AoC.client_id
: (ver más abajo) El identificador de la aplicación clienteclient_secret
: (ver más abajo) El secreto de la aplicación cliente client_id
y client_secret
pueden ser:
aspera
:aspera.global-cli-client
frpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb
Por ejemplo para extraer los de Aspera Connect (Drive): strings asperaconnect|grep -B1 '^aspera.drive$'
Para probar transferencias a COS, necesitará:
Este es el valor predeterminado en el ejemplo.
O también es posible utilizar:
private/service_creds.json
, siga: obtenga credenciales de servicio