โค้ดตัวอย่างที่ใช้ IBM Aspera API สำหรับผลิตภัณฑ์และ SDK ของ IBM Aspera ต่างๆ:
มีการเสนอภาษาโปรแกรมต่างๆ
เอกสารประกอบ IBM Aspera API (เลือก 24 รายการต่อหน้าที่ด้านล่าง)
เอกสารประกอบของ Aspera Transfer SDK มีตัวอย่างโค้ด
วิดีโอเกี่ยวกับ Transfer SDK
ไซต์ GitHub ของ IBM Aspera Connect SDK มีตัวอย่างเกี่ยวกับการใช้ Aspera Connect SDK
IBM Aspera มี API สองประเภท:
API ของไคลเอ็นต์:
SDK ประกอบด้วย ไลบรารี ที่ใช้ในแอปพลิเคชันเพื่อถ่ายโอนไฟล์
API ของเซิร์ฟเวอร์:
REST API (ที่มีข้อกำหนด OpenAPI) โต้ตอบกับแอปพลิเคชัน Aspera (Faspex, AoC, Node API, COS ฯลฯ...)
อาจใช้ API เหล่านั้นหนึ่งรายการหรือ (บ่อยครั้ง) หลายรายการ ทั้งนี้ขึ้นอยู่กับกรณีการใช้งาน
พื้นที่เก็บข้อมูลนี้มีโครงสร้างดังนี้:
web
: ตัวอย่างที่แสดงการใช้ web SDKd: ทั้ง Aspera Connect SDK และ Aspera HTTP Gateway SDK
app
: ตัวอย่างในภาษาต่างๆ ที่ใช้ Aspera Transfer SDK และ Aspera Applications REST API
ภายในแต่ละโฟลเดอร์ภาษา คุณจะพบ:
README.md
: README เฉพาะสำหรับภาษานั้นMakefile
: makefile เพื่อรันตัวอย่างsrc
: ซอร์สโค้ดsrc/utils
: คลาสตัวช่วยsrc/examples
: โปรแกรมตัวอย่างโปรแกรมตัวอย่างจะใช้ที่อยู่เซิร์ฟเวอร์และข้อมูลรับรองจากไฟล์การกำหนดค่า YAML เมื่อสร้างไฟล์การกำหนดค่าแล้ว โปรแกรมตัวอย่างจะสามารถรันได้โดยตรง
ระบบที่คล้าย Unix : Linux, macOS... มี Makefile
เพื่อเรียกใช้ตัวอย่าง
Windows : โปรดดูที่ Quick start (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
หมายเหตุ: ได้ คุณยังสามารถลากและวาง คลิก และคัดลอก/วาง และแก้ไขไฟล์ด้วย Notepad ฯลฯ...
เตรียมโฟลเดอร์ SDK
md tmp
ดาวน์โหลด Aspera Transfer SDK (ที่นี่) และแยกเนื้อหาไปยังโฟลเดอร์ที่ระบุโดย sdk_dir
ใน config/paths.yaml
: <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
ตัวอย่างการรันจำเป็นต้องดาวน์โหลด Transfer SDK daemon asperatransferd
และเครื่องมือบางอย่างในการคอมไพล์ไฟล์โปรโตของ SDK การโอน โปรดดู Transfer 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
เท่านั้น
ส่วนอื่นๆ จะถูกใช้ตามตัวอย่างต่างๆ ตัวอย่างเช่น หากคุณต้องการทดสอบเฉพาะการถ่ายโอน COS โดยใช้ Transfer SDK คุณสามารถกรอกเฉพาะส่วน 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
: ระดับบันทึกโค้ดตัวอย่าง: error
warning
info
debug
trsdk.level
: ระดับบันทึกของ asperatransferd: trace
info
debug
warning
error
panic
fatal
ร้ายแรงtrsdk.ascp_level
: ระดับบันทึก ascp: trace
info
debug
ตัวอย่างบางส่วนรองรับการตั้งค่าพอร์ตเป็น 0
(ศูนย์) ใน trsdk.url
เพื่อใช้พอร์ตแบบสุ่ม
แอปพลิเคชันตัวอย่างสร้างไฟล์ asperatransferd.conf
ที่มอบให้กับ Transfer sdk daemon ระดับบันทึกที่นำมาจากไฟล์กำหนดค่า yaml ทั่วไป
Transfer SDK เป็นบริการ gRPC ที่ช่วยให้คุณสามารถถ่ายโอนไฟล์ในแอปพลิเคชันได้ เป็น Client API ที่สามารถใช้งานได้หลายภาษา
ไฟล์ transfer.proto
อธิบายไว้ในอินเทอร์เฟซการเรียกโพรซีเดอร์ระยะไกลที่จัดเตรียมโดย 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 |
+------+
แอปพลิเคชันไคลเอนต์ต้องใช้ไฟล์ต้นทางไคลเอนต์ที่สร้างจากไฟล์ transfer.proto
รหัสที่สร้างขึ้น (stub) มีไว้เพื่อความสะดวกใน Transfer SDK สำหรับหลายภาษา สามารถใช้งานได้โดยตรงหรือนักพัฒนาอาจเลือกสร้างจากไฟล์ transfer.proto
เพื่อการใช้งานจริงและความเข้ากันได้ในอนาคต ขอแนะนำให้สร้างโค้ด stub จากไฟล์ transfer.proto
หากคุณสร้างโค้ด Stub ด้วยตัวเอง คุณจะได้รับประโยชน์จากการสนับสนุนแพลตฟอร์มและเวอร์ชันล่าสุด
ตัวอย่างส่วนใหญ่ที่นี่จะสร้างโค้ด stub จากไฟล์ transfer.proto
โปรดดูคำแนะนำเกี่ยวกับวิธีสร้างโค้ดในเว็บไซต์ GRPC
โปรแกรมตัวอย่างใช้คลาสตัวช่วยที่อยู่ในแพ็คเกจ utils
:
Configuration
จะอ่านพารามิเตอร์การกำหนดค่าจาก config.yaml
เพื่อให้เรียกใช้ตัวอย่างได้ง่ายขึ้นTransferClient
จะสร้างไฟล์การกำหนดค่าและเริ่มต้น Transfer SDK daemon: asperatransferd
Rest
สำหรับการเรียก API แบบธรรมดาบน Rest APITransfer SDK ต้องการไฟล์รันไทม์ต่อไปนี้:
asperatransferd
: ไฟล์เรียกทำงานที่ให้บริการ gRPCascp
: ปฏิบัติการที่ถ่ายโอนไฟล์จริงascp4
: ascp เวอร์ชันอื่นasync
: ปฏิบัติการได้สำหรับการดำเนินการ asynclibafwsfeed
: ไลบรารีสำหรับ ascp
สำหรับซ็อกเก็ตเว็บaspera-license
: ไฟล์ลิขสิทธิ์สำหรับ ascp
(ใช้งานฟรี)ไฟล์ทางเลือก:
aspera.conf
: ไฟล์กำหนดค่าสำหรับ ascp
product-info.mf
: ไฟล์ XML พร้อมข้อมูลเกี่ยวกับเวอร์ชัน SDKaspera.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
เป็น daemon ที่ต้องเริ่มต้นก่อนใช้ Transfer SDK โดยจะขับเคลื่อนการถ่ายโอนไฟล์ระหว่างจุดปลายสองจุดโดยใช้ ascp
แบบฝัง แอปไคลเอ็นต์จะเชื่อมต่อโดยใช้ gRPC บนพอร์ตที่ระบุ
ไม่ได้ระบุวิธีการเริ่มต้น daemon ใน SDK นักพัฒนามีทางเลือกในการเริ่มต้นด้วยตนเองในเทอร์มินัลแยกต่างหาก หรือสร้างไฟล์การกำหนดค่าคงที่และเริ่มต้นโดยใช้วิธีอื่น (เช่น บริการ systemd)
ตัวอย่างที่ให้ไว้ที่นี่เริ่มต้น daemon โดยใช้คลาส TransferClient
เมื่อ asperatransferd
เริ่มต้น หากไม่มีไฟล์การกำหนดค่ามาพร้อมกับตัวเลือก --config
ก็คาดว่าจะพบ ascp
, ascp4
, async
, libafwsfeed
, aspera-license
ในโฟลเดอร์เฉพาะ ในการวางไฟล์ทั้งหมดไว้ในโฟลเดอร์เดียวกัน จะต้องจัดเตรียมไฟล์การกำหนดค่าและจะต้องตั้งค่าโฟลเดอร์
Makefile ที่ให้ไว้ในตัวอย่างจะดาวน์โหลด SDK และแยกออกมาในโฟลเดอร์เดียว จากนั้นตัวอย่างจะสร้างไฟล์การกำหนดค่าตามลำดับ
โปรดดูเอกสารประกอบ HSTS เพื่อสร้างผู้ใช้และรับข้อมูลประจำตัว
โดยทั่วไปแล้ว ผู้ใช้โหนด API จะถูกสร้างขึ้นในลักษณะนี้:
/opt/aspera/bin/asnodeadmin -a -u my_node_username -p my_node_password -x my_transfer_user
หมายเหตุ: ข้อมูลรับรองคีย์การเข้าถึง (id และความลับ) สามารถใช้สำหรับผู้ใช้โหนด API ได้เช่นกัน
การแชร์มี API ดังต่อไปนี้:
<shares url>/node_api
ตัวอย่างเดียวกันกับ Node API สามารถใช้สำหรับ การ Shares
สำหรับ Aspera on Cloud จำเป็นต้องมีรายการการกำหนดค่าหลายรายการ:
org
: องค์กร AoC เช่น ชื่อก่อน .ibmaspera.com
ใน URLuser_email
: IBMid ของผู้ใช้private_key
: เส้นทางไปยังไฟล์ PEM ที่มีคีย์ส่วนตัวของผู้ใช้ ผู้ใช้กำหนดค่าคีย์สาธารณะที่เกี่ยวข้องในโปรไฟล์ผู้ใช้ AoC ของเขาclient_id
: (ดูด้านล่าง) ตัวระบุแอปไคลเอ็นต์client_secret
: (ดูด้านล่าง) ข้อมูลลับของแอปไคลเอ็นต์ client_id
และ client_secret
สามารถเป็น:
aspera
CLI เดิม:aspera.global-cli-client
frpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb
ตัวอย่างเช่น หากต้องการแยกรายการของ Aspera Connect (ไดรฟ์): strings asperaconnect|grep -B1 '^aspera.drive$'
หากต้องการทดสอบการถ่ายโอนไปยัง COS คุณจะต้องมี:
นี่คือค่าเริ่มต้นในตัวอย่าง
หรือเป็นไปได้ที่จะใช้:
private/service_creds.json
ตาม: รับข้อมูลรับรองบริการ