Contoh kode yang menggunakan API IBM Aspera untuk berbagai produk dan SDK IBM Aspera:

Berbagai bahasa pemrograman diusulkan.
Dokumentasi IBM Aspera API (pilih 24 item per halaman di bawah).
Dokumentasi Aspera Transfer SDK berisi contoh kode.
Video tentang Transfer SDK
Situs github IBM Aspera Connect SDK berisi contoh tentang penggunaan Aspera Connect SDK.
IBM Aspera menyediakan dua jenis API:
API Klien:
SDK menyertakan perpustakaan yang akan digunakan dalam aplikasi untuk mentransfer file
API Server:
REST API (dengan spesifikasi OpenAPI) berinteraksi dengan aplikasi Aspera (Faspex, AoC, Node API, COS, dll...)
Bergantung pada kasus penggunaannya, seseorang mungkin menggunakan satu atau (sering) beberapa API tersebut.
Repositori ini terstruktur seperti ini:
web : contoh yang menunjukkan penggunaan web SDKd: Aspera Connect SDK dan Aspera HTTP Gateway SDK
app : contoh dalam berbagai bahasa menggunakan Aspera Transfer SDK dan REST API Aplikasi Aspera
Di dalam setiap folder bahasa, Anda akan menemukan:
README.md : README khusus untuk bahasa tersebutMakefile : makefile untuk menjalankan sampelsrc : kode sumbersrc/utils : kelas pembantusrc/examples : contoh programContoh program akan menggunakan alamat server dan kredensial dari file konfigurasi YAML. Setelah file konfigurasi dibuat, program sampel dapat langsung dijalankan.
Sistem mirip Unix : Linux, macOS... Makefile disediakan untuk menjalankan sampel.
Windows : Lihat Mulai cepat (Windows) di bawah. make mungkin tidak tersedia. Gunakan Makefile sebagai referensi untuk menjalankan perintah secara manual.
Lihat Menjalankan program contoh.
Pada eksekusi pertama make : Transfer SDK akan diunduh secara otomatis.
Untuk mengunduh SDK, jalankan: make sdk .
Lihat File Konfigurasi: Salin file config/config.tmpl ke private/config.yaml dan isi nilainya.
md private
copy configconfig.tmpl privateconfig.yaml
Setel parameter misc.platform ke windows-x86_64
Edit parameter yang diperlukan di private/config.yaml , misalnya informasi koneksi Faspex.
Catatan: Ya, Anda juga dapat menarik dan melepas, mengeklik, menyalin/menempel, dan mengedit file dengan Notepad, dll...
Siapkan folder SDK
md tmp
Unduh Aspera Transfer SDK (di sini) dan ekstrak isinya ke folder yang diidentifikasi oleh sdk_dir di config/paths.yaml : <main folder>/tmp/transfer_sdk
Catatan: Pastikan file yang diidentifikasi di
config/paths.yamlberada di folder yang diekstraksi seperti yang diharapkan. Misalnya, file berikut harus ada:<main folder>/tmp/transfer_sdk/bin/asperatransferd
Jalankan sampel: lihat Menjalankan program sampel
Buat file konfigurasi seperti yang ditentukan dalam File konfigurasi. Tidak semua nilai diperlukan, hanya nilai yang diperlukan untuk contoh yang ingin Anda jalankan.
Misalnya untuk mengeksekusi sampel individual, gunakan make .tested/<sample name here> :
$ cd app/python
$ make list
server aoc faspex faspex5 node shares node_v2
$ make .tested/faspex5 Contoh yang berjalan memerlukan daemon Transfer SDK asperatransferd untuk diunduh, dan beberapa alat untuk mengkompilasi file proto SDK transfer, lihat Transfer SDK.
Untuk lebih jelasnya lihat resep di Makefile masing-masing bahasa.
File konfigurasi template disediakan: config/config.tmpl .
Salin file config/config.tmpl ke private/config.yaml dan isi dengan alamat server, kredensial, dan parameter Anda sendiri.
cp config/config.tmpl private/config.yaml
vi private/config.yamlCatatan: Meskipun formatnya mungkin terlihat seperti file konfigurasi
ascli, file konfigurasi untukasclitidak kompatibel dengan yang ini. Anda harus membuat yang baru.
Atur parameter misc.platform ke arsitektur yang digunakan:
osx-arm64osx-x86_64windows-x86_64linux-x86_64linux-s390linux-arm64linux-ppc64leaix-ppc64 Parameter trsdk.url dapat diatur ke grpc://127.0.0.1:55002 (tentukan port lokal yang akan digunakan SDK).
Bagian httpgw digunakan oleh contoh web saja.
Bagian lain digunakan dengan berbagai contoh. Misalnya, jika Anda ingin menguji transfer COS saja menggunakan Transfer SDK, Anda dapat mengisi bagian cos saja dan membiarkan bagian lainnya kosong.
Contoh (dengan kredensial acak):
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 : TheSharedInboxCatatan: Bagian dengan URL HTTPS memiliki parameter
verify. Setel kefalseuntuk menonaktifkan validasi sertifikat server untuk lingkungan pengembangan.
Beberapa jalur relatif ditentukan di config/paths.yaml (pertahankan nilai tersebut tetap utuh).
Level log berikut dapat diatur:
misc.level : kode contoh level log: error warning info debugtrsdk.level : tingkat log asperatransferd: trace info debug error warning panic fataltrsdk.ascp_level : level log ascp: trace info debug Beberapa contoh mendukung pengaturan port ke 0 (nol) di trsdk.url untuk menggunakan port acak.
Contoh aplikasi menghasilkan file asperatransferd.conf yang disediakan ke daemon SDK transfer, level log di sana diambil dari file konfigurasi yaml umum.
Transfer SDK adalah layanan gRPC yang memungkinkan Anda mentransfer file dalam suatu aplikasi. Ini adalah API klien yang dapat digunakan dalam berbagai bahasa.
File transfer.proto dijelaskan dalam antarmuka panggilan prosedur jarak jauh yang disediakan oleh daemon 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 |
+------+
Aplikasi klien harus menggunakan file sumber klien yang dihasilkan dari file transfer.proto .
Kode (rintisan) yang dihasilkan disediakan untuk kenyamanan dalam Transfer SDK untuk beberapa bahasa. Ini dapat digunakan secara langsung atau pengembang dapat memilih untuk membuatnya dari file transfer.proto . Untuk produksi dan kompatibilitas di masa mendatang, disarankan untuk membuat kode rintisan dari file transfer.proto . Jika Anda membuat kode rintisan sendiri, Anda bisa mendapatkan keuntungan dari dukungan untuk platform dan versi terbaru.
Sebagian besar sampel di sini menghasilkan kode rintisan dari file transfer.proto .
Lihat situs web GRPC untuk petunjuk tentang cara membuat kode.
Contoh program menggunakan kelas pembantu yang terletak di paket utils :
Configuration membaca parameter konfigurasi dari config.yaml sehingga lebih mudah menjalankan sampel apa pun.TransferClient membuat file konfigurasi dan memulai daemon Transfer SDK: asperatransferdRest untuk panggilan API sederhana di Istirahat API.Transfer SDK memerlukan file runtime berikut:
asperatransferd : dapat dieksekusi yang menyediakan layanan gRPCascp : executable yang benar-benar mentransfer fileascp4 : versi lain dari ascpasync : dapat dieksekusi untuk operasi asynclibafwsfeed : perpustakaan untuk ascp untuk soket webaspera-license : file lisensi untuk ascp (penggunaan gratis)File opsional:
aspera.conf : file konfigurasi untuk ascpproduct-info.mf : File XML dengan informasi tentang versi SDKaspera.conf File ini opsional untuk ascp saat digunakan dalam mode klien.
Konten paling minimum adalah:
< CONF />Dimungkinkan untuk mengatur beberapa parameter klien, seperti:
<? 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 adalah daemon yang harus dijalankan sebelum menggunakan Transfer SDK. Ini mendorong transfer file antara dua titik akhir menggunakan ascp tertanam. Aplikasi klien akan terhubung menggunakan gRPC pada port yang ditentukan.
Cara memulai daemon tidak ditentukan di SDK. Pengembang mempunyai pilihan untuk memulainya secara manual di terminal terpisah, atau membuat file konfigurasi statis dan memulainya menggunakan metode lain (misalnya, layanan systemd).
Contoh yang diberikan di sini memulai daemon menggunakan kelas TransferClient .
Ketika asperatransferd dimulai, jika tidak ada file konfigurasi yang disediakan dengan opsi --config , maka ia mengharapkan untuk menemukan ascp , ascp4 , async , libafwsfeed , aspera-license di folder tertentu. Untuk menempatkan semua file dalam satu folder, maka file konfigurasi harus disediakan dan folder harus diatur.
Makefile yang disediakan dalam sampel mengunduh SDK dan mengekstraknya dalam satu folder, lalu contoh menghasilkan file konfigurasi yang sesuai.
Lihat dokumentasi HSTS untuk membuat pengguna dan mendapatkan kredensial.
Biasanya, pengguna node api dibuat seperti ini:
/opt/aspera/bin/asnodeadmin -a -u my_node_username -p my_node_password -x my_transfer_userCatatan: Kredensial kunci akses (id dan rahasia) juga dapat digunakan untuk pengguna node api.
Shares menyediakan API berikut:
<shares url>/node_api .Contoh yang sama seperti Node API dapat digunakan untuk Shares .
Untuk Aspera on Cloud, diperlukan beberapa item konfigurasi:
org : Organisasi AoC, yaitu nama sebelum .ibmaspera.com di URLuser_email : IBMid penggunaprivate_key : Jalur ke file PEM yang berisi kunci pribadi pengguna. Pengguna mengonfigurasi kunci publik terkait di profil Pengguna AoC miliknya.client_id : (lihat di bawah) Pengidentifikasi aplikasi klienclient_secret : (lihat di bawah) Rahasia aplikasi klien client_id dan client_secret dapat berupa:
aspera CLI lama :aspera.global-cli-clientfrpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb Misalnya untuk mengekstrak Aspera Connect (Drive): strings asperaconnect|grep -B1 '^aspera.drive$'
Untuk menguji transfer ke COS, Anda memerlukan:
Ini adalah default dalam contoh.
Atau bisa juga menggunakan:
private/service_creds.json , ikuti: dapatkan kredensial layanan