Beispielcode mit IBM Aspera-APIs für verschiedene IBM Aspera-Produkte und SDKs:
Es werden verschiedene Programmiersprachen vorgeschlagen.
IBM Aspera API-Dokumentation (wählen Sie unten 24 Elemente pro Seite aus).
Die Aspera Transfer SDK-Dokumentation enthält Codebeispiele.
Video zum Transfer SDK
Die Github-Site des IBM Aspera Connect SDK enthält Beispiele zur Verwendung des Aspera Connect SDK.
IBM Aspera bietet zwei Arten von APIs:
Client-APIs:
SDKs umfassen Bibliotheken , die in Anwendungen zum Übertragen von Dateien verwendet werden
Server-APIs:
REST- APIs (mit OpenAPI-Spezifikation) interagieren mit Aspera-Anwendungen (Faspex, AoC, Node API, COS usw.)
Je nach Anwendungsfall kann man eine oder (häufig) mehrere dieser APIs verwenden.
Dieses Repository ist wie folgt aufgebaut:
web
: Ein Beispiel, das die Verwendung des Web-SDKd zeigt: sowohl das Aspera Connect SDK als auch das Aspera HTTP Gateway SDK
app
: Beispiele in verschiedenen Sprachen unter Verwendung des Aspera Transfer SDK und der REST-APIs von Aspera Applications
In jedem Sprachordner finden Sie:
README.md
: eine spezifische README-Datei für die SpracheMakefile
: ein Makefile zum Ausführen der Beispielesrc
: Quellcodesrc/utils
: Hilfsklassensrc/examples
: BeispielprogrammeBeispielprogramme verwenden Serveradressen und Anmeldeinformationen aus einer YAML-Konfigurationsdatei. Sobald die Konfigurationsdatei erstellt ist, können Beispielprogramme direkt ausgeführt werden.
Unix-ähnliche Systeme : Linux, macOS... Zum Ausführen der Beispiele wird ein Makefile
bereitgestellt.
Windows : Siehe Schnellstart (Windows) unten. make
ist möglicherweise nicht verfügbar. Verwenden Sie das Makefile
als Referenz, um die Befehle manuell auszuführen.
Siehe Beispielprogramme ausführen.
Bei der ersten Ausführung von make
: wird das Transfer SDK automatisch heruntergeladen.
Um das SDK herunterzuladen, führen Sie Folgendes aus: make sdk
.
Siehe Konfigurationsdatei: Kopieren Sie die Datei config/config.tmpl
in private/config.yaml
und geben Sie Werte ein.
md private
copy configconfig.tmpl privateconfig.yaml
Setzen Sie den Parameter misc.platform
auf windows-x86_64
Bearbeiten Sie die erforderlichen Parameter in private/config.yaml
, beispielsweise Faspex-Verbindungsinformationen.
Hinweis: Ja, Sie können die Datei auch per Drag & Drop, Klicken, Kopieren/Einfügen und Bearbeiten mit Notepad usw. bearbeiten.
Bereiten Sie den SDK-Ordner vor
md tmp
Laden Sie das Aspera Transfer SDK herunter (hier) und extrahieren Sie seinen Inhalt in den Ordner, der durch sdk_dir
in config/paths.yaml
identifiziert wird: <main folder>/tmp/transfer_sdk
Hinweis: Stellen Sie sicher, dass sich die in
config/paths.yaml
identifizierten Dateien wie erwartet im extrahierten Ordner befinden. Beispielsweise muss die folgende Datei vorhanden sein:<main folder>/tmp/transfer_sdk/bin/asperatransferd
Führen Sie die Beispiele aus: siehe Beispielprogramme ausführen
Erstellen Sie eine Konfigurationsdatei wie in Konfigurationsdatei angegeben. Es sind nicht alle Werte erforderlich, sondern nur diejenigen, die für die Beispiele benötigt werden, die Sie ausführen möchten.
Um beispielsweise ein einzelnes Beispiel auszuführen, verwenden Sie make .tested/<sample name here>
:
$ cd app/python
$ make list
server aoc faspex faspex5 node shares node_v2
$ make .tested/faspex5
Für die Ausführung von Beispielen müssen der Transfer-SDK-Daemon asperatransferd
und einige Tools zum Kompilieren der Protodatei des Transfer-SDK heruntergeladen werden, siehe Transfer-SDK.
Einzelheiten finden Sie im Rezept im Makefile
jeder Sprache.
Es wird eine Vorlagenkonfigurationsdatei bereitgestellt: config/config.tmpl
.
Kopieren Sie die Datei config/config.tmpl
in private/config.yaml
und füllen Sie sie mit Ihren eigenen Serveradressen, Anmeldeinformationen und Parametern aus.
cp config/config.tmpl private/config.yaml
vi private/config.yaml
Hinweis: Obwohl das Format möglicherweise wie die Konfigurationsdatei für
ascli
aussieht, ist eine Konfigurationsdatei fürascli
nicht mit dieser kompatibel. Sie müssen ein neues erstellen.
Stellen Sie den Parameter misc.platform
auf die verwendete Architektur ein:
osx-arm64
osx-x86_64
windows-x86_64
linux-x86_64
linux-s390
linux-arm64
linux-ppc64le
aix-ppc64
Der Parameter trsdk.url
kann auf grpc://127.0.0.1:55002
gesetzt werden (geben Sie den lokalen Port an, den SDK verwenden wird).
Der Abschnitt httpgw
wird nur vom web
verwendet.
Andere Abschnitte werden von den verschiedenen Beispielen verwendet. Wenn Sie beispielsweise nur die COS-Übertragung mit dem Transfer SDK testen möchten, können Sie nur den cos
Abschnitt ausfüllen und andere Abschnitte leer lassen.
Beispiel (mit zufälligen Anmeldeinformationen):
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
Hinweis: Abschnitte mit HTTPS-URLs verfügen über einen Parameter
verify
. Legen Sie den Wert auffalse
fest, um die Validierung von Serverzertifikaten für Entwicklungsumgebungen zu deaktivieren.
Einige relative Pfade sind in config/paths.yaml
definiert (behalten Sie diese Werte bei).
Folgende Protokollebenen können eingestellt werden:
misc.level
: Beispielcode-Protokollebene: debug
info
error
warning
trsdk.level
: asperatransferd-Protokollebene: trace
debug
info
warning
error
fatal
panic
trsdk.ascp_level
: ASCP-Protokollebene: trace
debug
info
Einige Beispiele unterstützen das Setzen von Port auf 0
(Null) in trsdk.url
, um einen zufälligen Port zu verwenden.
Die Beispielanwendung generiert eine Datei asperatransferd.conf
, die dem Transfer-SDK-Daemon zur Verfügung gestellt wird. Die Protokollebene dort wird der allgemeinen Yaml-Konfigurationsdatei entnommen.
Das Transfer SDK ist ein gRPC-Dienst, der Ihnen die Übertragung von Dateien in einer Anwendung ermöglicht. Es handelt sich um eine Client-API, die in verschiedenen Sprachen verwendet werden kann.
Die Datei transfer.proto
beschreibt die vom Daemon asperatransferd
bereitgestellte Remoteprozeduraufrufschnittstelle.
+----------------+
+ 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 |
+------+
Clientanwendungen müssen die aus der transfer.proto
Datei generierten Client-Quelldateien verwenden.
Generierter (Stub-)Code wird zur Vereinfachung im Transfer SDK für mehrere Sprachen bereitgestellt. Es kann direkt verwendet werden oder der Entwickler kann sie aus der transfer.proto
Datei generieren. Für die Produktion und zukünftige Kompatibilität wird empfohlen, den Stub-Code aus der Datei transfer.proto
zu generieren. Wenn Sie Stub-Code selbst generieren, können Sie von der Unterstützung der neuesten Plattformen und Versionen profitieren.
Die meisten Beispiele hier generieren den Stub-Code aus der Datei transfer.proto
.
Anweisungen zum Generieren des Codes finden Sie auf der GRPC-Website.
Beispielprogramme verwenden Hilfsklassen, die sich in den utils
befinden:
Configuration
liest Konfigurationsparameter aus config.yaml
damit es einfacher ist, Beispiele auszuführen.TransferClient
erstellt eine Konfigurationsdatei und startet den Transfer SDK-Daemon: asperatransferd
Rest
für einfache API-Aufrufe auf Rest-APIs.Das Transfer SDK erfordert die folgenden Laufzeitdateien:
asperatransferd
: ausführbare Datei, die den gRPC-Dienst bereitstelltascp
: ausführbare Datei, die die Dateien tatsächlich überträgtascp4
: eine andere Version von ascpasync
: ausführbare Datei für asynchrone Vorgängelibafwsfeed
: eine Bibliothek für ascp
für Web-Socketsaspera-license
: die Lizenzdatei für ascp
(kostenlose Nutzung)Optionale Dateien:
aspera.conf
: die Konfigurationsdatei für ascp
product-info.mf
: XML-Datei mit Informationen zur SDK-Versionaspera.conf
Diese Datei ist für ascp
optional, wenn sie im Client-Modus verwendet wird.
Der Mindestinhalt ist:
< CONF />
Es ist möglich, einige Client-Parameter festzulegen, wie zum Beispiel:
<? 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
ist ein Daemon, der vor der Verwendung des Transfer SDK gestartet werden muss. Es steuert die Übertragung von Dateien zwischen zwei Endpunkten mithilfe von eingebettetem ascp
. Die Client-App stellt über gRPC am angegebenen Port eine Verbindung her.
Die Art und Weise, wie der Daemon gestartet wird, ist im SDK nicht angegeben. Entwickler haben die Wahl, es manuell in einem separaten Terminal zu starten oder eine statische Konfigurationsdatei zu erstellen und sie mit einer anderen Methode (z. B. einem systemd-Dienst) zu starten.
Die hier bereitgestellten Beispiele starten den Daemon mithilfe der TransferClient
-Klasse.
Wenn asperatransferd
startet und keine Konfigurationsdatei mit der Option --config
bereitgestellt wird, wird erwartet, dass ascp
, ascp4
, async
, libafwsfeed
und aspera-license
in bestimmten Ordnern gefunden werden. Um alle Dateien im selben Ordner abzulegen, muss die Konfigurationsdatei bereitgestellt und Ordner festgelegt werden.
Das in den Beispielen bereitgestellte Makefile lädt das SDK herunter und extrahiert es in einen einzelnen Ordner. Anschließend generieren die Beispiele die entsprechende Konfigurationsdatei.
Informationen zum Erstellen eines Benutzers und zum Abrufen der Anmeldeinformationen finden Sie in der HSTS-Dokumentation.
Normalerweise wird ein Knoten-API-Benutzer wie folgt erstellt:
/opt/aspera/bin/asnodeadmin -a -u my_node_username -p my_node_password -x my_transfer_user
Hinweis: Zugangsschlüssel-Anmeldeinformationen (ID und Geheimnis) können auch für den Knoten-API-Benutzer verwendet werden.
Shares bietet die folgenden APIs:
<shares url>/node_api
.Für Shares können die gleichen Beispiele wie für Node API verwendet werden.
Für Aspera on Cloud sind mehrere Konfigurationselemente erforderlich:
org
: Die AoC-Organisation, dh der Name vor .ibmaspera.com
in der URLuser_email
: Die IBMid des Benutzersprivate_key
: Der Pfad zur PEM-Datei, die den privaten Schlüssel des Benutzers enthält. Der Benutzer hat den zugehörigen öffentlichen Schlüssel im Profil seines AoC-Benutzers konfiguriert.client_id
: (siehe unten) Die Client-App-IDclient_secret
: (siehe unten) Das Client-App-Geheimnis client_id
und client_secret
können sein:
aspera
CLI:aspera.global-cli-client
frpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb
Um beispielsweise diejenigen von Aspera Connect (Laufwerk) zu extrahieren: strings asperaconnect|grep -B1 '^aspera.drive$'
Um Überweisungen an COS zu testen, benötigen Sie:
Dies ist im Beispiel die Standardeinstellung.
Oder es ist auch möglich zu verwenden:
private/service_creds.json
, folgen Sie: Dienstanmeldeinformationen abrufen