さまざまな 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-arm64
osx-x86_64
windows-x86_64
linux-x86_64
linux-s390
linux-arm64
linux-ppc64le
aix-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
error
trsdk.level
: asperatransferd ログ レベル: trace
debug
info
warning
error
fatal
panic
trsdk.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-client
frpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb
たとえば、Aspera Connect (ドライブ) のものを抽出するには: strings asperaconnect|grep -B1 '^aspera.drive$'
COS への転送をテストするには、次のものが必要です。
この例ではこれがデフォルトです。
または、以下を使用することも可能です。
private/service_creds.json
を作成し、次のようにします: サービス資格情報を取得します