โค้ดตัวอย่างที่ใช้ 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-arm64osx-x86_64windows-x86_64linux-x86_64linux-s390linux-arm64linux-ppc64leaix-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 debugtrsdk.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: asperatransferdRest สำหรับการเรียก API แบบธรรมดาบน Rest APITransfer SDK ต้องการไฟล์รันไทม์ต่อไปนี้:
asperatransferd : ไฟล์เรียกทำงานที่ให้บริการ gRPCascp : ปฏิบัติการที่ถ่ายโอนไฟล์จริงascp4 : ascp เวอร์ชันอื่นasync : ปฏิบัติการได้สำหรับการดำเนินการ asynclibafwsfeed : ไลบรารีสำหรับ ascp สำหรับซ็อกเก็ตเว็บaspera-license : ไฟล์ลิขสิทธิ์สำหรับ ascp (ใช้งานฟรี)ไฟล์ทางเลือก:
aspera.conf : ไฟล์กำหนดค่าสำหรับ ascpproduct-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-clientfrpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb ตัวอย่างเช่น หากต้องการแยกรายการของ Aspera Connect (ไดรฟ์): strings asperaconnect|grep -B1 '^aspera.drive$'
หากต้องการทดสอบการถ่ายโอนไปยัง COS คุณจะต้องมี:
นี่คือค่าเริ่มต้นในตัวอย่าง
หรือเป็นไปได้ที่จะใช้:
private/service_creds.json ตาม: รับข้อมูลรับรองบริการ