さまざまな IBM Aspera 製品および SDK 用の IBM Aspera API を使用したサンプル コード:

さまざまなプログラミング言語が提案されています。
IBM Aspera API ドキュメント (下部のページごとに 24 項目を選択)。
Aspera Transfer SDK ドキュメントにはコード サンプルが含まれています。
Transfer SDK に関するビデオ
IBM Aspera Connect SDK github サイトには、Aspera Connect SDK の使用例が含まれています。
IBM Aspera は、次の 2 種類の API を提供します。
クライアント API:
SDKには、アプリケーションでファイルを転送するために使用されるライブラリが含まれています
サーバー API:
REST API (OpenAPI 仕様を使用) は、Aspera アプリケーション (Faspex、AoC、Node API、COS など) と対話します。
ユースケースに応じて、これらの API を 1 つまたは (多くの場合) 複数使用します。
このリポジトリは次のように構成されています。
web : Web SDKd の使用例: Aspera Connect SDKとAspera HTTP Gateway SDK の両方
app : Aspera Transfer SDKおよびAspera Applications REST API を使用したさまざまな言語の例
各言語フォルダー内には次のものがあります。
README.md : 言語の特定の READMEMakefile : サンプルを実行するための Makefilesrc : ソースコードsrc/utils : ヘルパー クラスsrc/examples : サンプルプログラムサンプル プログラムは、YAML 構成ファイルのサーバー アドレスと資格情報を使用します。設定ファイルを作成したら、サンプルプログラムを直接実行できます。
Unix 系システム: Linux、macOS... サンプルを実行するためのMakefileが提供されています。
Windows : 以下のクイックスタート (Windows) を参照してください。 make利用できない可能性があります。 Makefile参照してコマンドを手動で実行します。
「サンプル プログラムの実行」を参照してください。
makeの最初の実行時: Transfer SDK が自動的にダウンロードされます。
SDK をダウンロードするには、 make sdkを実行します。
「構成ファイル」を参照してください。ファイルconfig/config.tmplをprivate/config.yamlにコピーし、値を入力します。
md private
copy configconfig.tmpl privateconfig.yaml
パラメータmisc.platform windows-x86_64に設定します。
private/config.yaml内の必須パラメータ (Faspex 接続情報など) を編集します。
注:はい、ドラッグ アンド ドロップ、クリック、コピー/貼り付け、メモ帳などを使用したファイルの編集も可能です。
SDKフォルダーを準備する
md tmp
Aspera Transfer SDK (こちら) をダウンロードし、その内容をconfig/paths.yamlのsdk_dirで識別されるフォルダーに抽出します: <main folder>/tmp/transfer_sdk
注:
config/paths.yamlで指定されたファイルが、解凍されたフォルダーに期待どおりに存在することを確認してください。たとえば、次のファイルが存在する必要があります:<main folder>/tmp/transfer_sdk/bin/asperatransferd
サンプルを実行します。「サンプル プログラムの実行」を参照してください。
「構成ファイル」の指定に従って構成ファイルを作成します。すべての値が必要なわけではなく、実行するサンプルに必要な値のみが必要です。
たとえば、個々のサンプルを実行するには、 make .tested/<sample name here>を使用します。
$ cd app/python
$ make list
server aoc faspex faspex5 node shares node_v2
$ make .tested/faspex5サンプルを実行するには、転送 SDK デーモンasperatransferdダウンロードし、転送 SDK のプロト ファイルをコンパイルするためのいくつかのツールが必要です。「転送 SDK」を参照してください。
詳細は各言語のMakefile内のレシピを参照してください。
テンプレート構成ファイルが提供されます: config/config.tmpl 。
ファイルconfig/config.tmplをprivate/config.yamlにコピーし、独自のサーバー アドレス、資格情報、パラメーターを入力します。
cp config/config.tmpl private/config.yaml
vi private/config.yaml注:形式は
ascliの構成ファイルに似ているかもしれませんが、ascliの構成ファイルはこのファイルと互換性がありません。新しいものを作成する必要があります。
パラメータmisc.platform使用するアーキテクチャに設定します。
osx-arm64osx-x86_64windows-x86_64linux-x86_64linux-s390linux-arm64linux-ppc64leaix-ppc64パラメータtrsdk.url grpc://127.0.0.1:55002に設定できます (SDK が使用するローカル ポートを指定します)。
セクションhttpgw webサンプルでのみ使用されます。
他のセクションはさまざまな例で使用されます。たとえば、Transfer SDK を使用して COS 転送のみをテストする場合は、 cosセクションのみを入力し、他のセクションを空のままにすることができます。
例 (ランダムな資格情報を使用):
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注: HTTPS URL を含むセクションには、パラメータ
verifyがあります。開発環境のサーバー証明書の検証を無効にするには、これをfalseに設定します。
一部の相対パスはconfig/paths.yamlで定義されています (これらの値はそのままにしておきます)。
次のログ レベルを設定できます。
misc.level : サンプルコード ログレベル: debug info warning errortrsdk.level : asperatransferd ログ レベル: trace debug info warning error fatal panictrsdk.ascp_level : ascp ログ レベル: trace debug info一部の例では、ランダム ポートを使用するために、 trsdk.urlでポートを0 (ゼロ) に設定することがサポートされています。
サンプル アプリケーションは、転送 SDK デーモンに提供されるファイルasperatransferd.confを生成します。ログ レベルは一般的な yaml 構成ファイルから取得されます。
Transfer SDK は、アプリケーション内でファイルを転送できるようにする gRPC サービスです。さまざまな言語で利用できるクライアントAPIです。
ファイルtransfer.proto 、デーモン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 |
+------+
クライアント アプリケーションは、 transfer.protoファイルから生成されたクライアント ソース ファイルを使用する必要があります。
生成された (スタブ) コードは、いくつかの言語の Transfer SDK で便宜上提供されています。これは直接使用することも、開発者がtransfer.protoファイルから生成することを選択することもできます。運用環境と将来の互換性を確保するために、 transfer.protoファイルからスタブ コードを生成することをお勧めします。スタブ コードを自分で生成すると、最新のプラットフォームとバージョンのサポートを受けることができます。
ここにあるほとんどのサンプルは、 transfer.protoファイルからスタブ コードを生成します。
コードの生成方法については、GRPC Web サイトを参照してください。
サンプル プログラムは、パッケージutilsにあるヘルパー クラスを使用します。
Configurationサンプルを簡単に実行できるように、 config.yamlから構成パラメーターを読み取ります。TransferClient構成ファイルを作成し、Transfer SDK デーモンasperatransferd起動します。Rest 。Transfer SDK には次のランタイム ファイルが必要です。
asperatransferd : gRPC サービスを提供する実行可能ファイルascp : 実際にファイルを転送する実行可能ファイルascp4 : ascp の別のバージョンasync : 非同期操作の実行可能ファイルlibafwsfeed : Web ソケット用のascpのライブラリaspera-license : ascpのライセンス ファイル (自由に使用)オプションのファイル:
aspera.conf : ascpの構成ファイルproduct-info.mf : SDK バージョンに関する情報を含む XML ファイルaspera.confこのファイルは、クライアント モードで使用する場合のascpのオプションです。
最小限の内容は次のとおりです。
< CONF />次のようないくつかのクライアント パラメータを設定できます。
<? 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 Transfer SDK を使用する前に起動する必要があるデーモンです。埋め込みascp使用して 2 つのエンドポイント間のファイル転送を推進します。クライアント アプリは、指定されたポートで gRPC を使用して接続します。
デーモンの起動方法はSDKでは規定されていません。開発者は、別のターミナルで手動で起動するか、静的構成ファイルを作成して別の方法 (systemd サービスなど) を使用して起動するかを選択できます。
ここで提供される例では、 TransferClientクラスを使用してデーモンを起動します。
asperatransferd起動時に、 --configオプションで構成ファイルが指定されていない場合は、特定のフォルダーでascp 、 ascp4 、 async 、 libafwsfeed 、 aspera-licenseが見つかることが期待されます。すべてのファイルを同じフォルダーに配置するには、構成ファイルを提供し、フォルダーを設定する必要があります。
サンプルで提供されている Makefile は SDK をダウンロードして 1 つのフォルダーに抽出し、サンプルではそれに応じて構成ファイルを生成します。
ユーザーを作成し、資格情報を取得するには、HSTS のドキュメントを参照してください。
通常、ノード API ユーザーは次のように作成されます。
/opt/aspera/bin/asnodeadmin -a -u my_node_username -p my_node_password -x my_transfer_user注:アクセス キーの資格情報 (ID とシークレット) は、ノード API ユーザーにも使用できます。
Shares は次の API を提供します。
<shares url>/node_apiです。Node APIと同じ例をSharesに使用できます。
Aspera on Cloud の場合、いくつかの構成項目が必要です。
org : AoC 組織、つまり URL の.ibmaspera.comの前の名前user_email : ユーザーの IBMidprivate_key : ユーザーの秘密キーを含む PEM ファイルへのパス。ユーザーは、AoC ユーザーのプロファイルで関連する公開キーを構成しました。client_id : (以下を参照) クライアント アプリの識別子client_secret : (以下を参照) クライアント アプリのシークレットclient_idとclient_secret次のとおりです。
aspera CLI の 1 つ:aspera.global-cli-clientfrpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kbたとえば、Aspera Connect (ドライブ) のものを抽出するには: strings asperaconnect|grep -B1 '^aspera.drive$'
COS への転送をテストするには、次のものが必要です。
この例ではこれがデフォルトです。
または、以下を使用することも可能です。
private/service_creds.jsonを作成し、次のようにします: サービス資格情報を取得します