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.yamlidentifizierten 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.yamlHinweis: Obwohl das Format möglicherweise wie die Konfigurationsdatei für
ascliaussieht, ist eine Konfigurationsdatei fürasclinicht mit dieser kompatibel. Sie müssen ein neues erstellen.
Stellen Sie den Parameter misc.platform auf die verwendete Architektur ein:
osx-arm64osx-x86_64windows-x86_64linux-x86_64linux-s390linux-arm64linux-ppc64leaix-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 : TheSharedInboxHinweis: Abschnitte mit HTTPS-URLs verfügen über einen Parameter
verify. Legen Sie den Wert auffalsefest, 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 warningtrsdk.level : asperatransferd-Protokollebene: trace debug info warning error fatal panictrsdk.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: asperatransferdRest 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 ascpproduct-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_userHinweis: 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-clientfrpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_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