نموذج التعليمات البرمجية باستخدام IBM Aspera APIs لمختلف منتجات IBM Aspera وSDKs:

يتم اقتراح لغات البرمجة المختلفة.
وثائق IBM Aspera API (حدد 24 عنصرًا لكل صفحة في الأسفل).
تحتوي وثائق Aspera Transfer SDK على نماذج التعليمات البرمجية.
فيديو حول نقل SDK
يحتوي موقع IBM Aspera Connect SDK github على أمثلة حول استخدام Aspera Connect SDK.
يوفر IBM Aspera نوعين من واجهات برمجة التطبيقات:
واجهات برمجة تطبيقات العميل:
تتضمن حزم SDK مكتبات لاستخدامها في التطبيقات لنقل الملفات
واجهات برمجة تطبيقات الخادم:
تتفاعل واجهات برمجة تطبيقات REST (مع مواصفات OpenAPI) مع تطبيقات Aspera (Faspex، وAoC، وNode API، وCOS، وما إلى ذلك...)
اعتمادًا على حالة الاستخدام، يمكن للمرء استخدام واحدة أو (غالبًا) العديد من واجهات برمجة التطبيقات هذه.
يتم تنظيم هذا المستودع على النحو التالي:
web : مثال يوضح استخدام web SDKd: كلاً من Aspera Connect SDK و Aspera HTTP Gateway SDK
app : أمثلة بلغات مختلفة باستخدام Aspera Transfer SDK و Aspera Applications REST APIs
ستجد داخل كل مجلد لغة ما يلي:
README.md : ملف README محدد للغةMakefile : ملف makefile لتشغيل العيناتsrc : كود المصدر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 (هنا) واستخرج محتوياته إلى المجلد المحدد بواسطة 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 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 فقط.
يتم استخدام أقسام أخرى من خلال الأمثلة المختلفة. على سبيل المثال، إذا كنت تريد اختبار نقل 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ملاحظة: الأقسام التي تحتوي على عناوين URL HTTPS لها معلمة
verify. اضبطه علىfalseلتعطيل التحقق من صحة شهادة الخادم لبيئات التطوير.
يتم تعريف بعض المسارات النسبية في config/paths.yaml (حافظ على هذه القيم سليمة).
يمكن تعيين مستويات السجل التالية:
misc.level : نموذج لمستوى سجل التعليمات البرمجية: error warning info debugtrsdk.level : مستوى سجل asperatransferd: trace info debug ، error warning ، panic fataltrsdk.ascp_level : مستوى سجل ascp: trace info debug تدعم بعض الأمثلة ضبط المنفذ على 0 (صفر) في trsdk.url لاستخدام منفذ عشوائي.
يقوم نموذج التطبيق بإنشاء ملف asperatransferd.conf المقدم إلى البرنامج الخفي للنقل sdk، ويتم أخذ مستوى السجل هناك من ملف تكوين yaml العام.
إن Transfer SDK عبارة عن خدمة gRPC تتيح لك نقل الملفات في التطبيق. إنها واجهة برمجة تطبيقات العميل التي يمكن استخدامها بلغات مختلفة.
يتم شرح transfer.proto الملف.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 للحصول على إرشادات حول كيفية إنشاء الكود.
تستخدم نماذج البرامج الفئات المساعدة الموجودة في utils الحزمة:
Configuration معلمات التكوين من config.yaml بحيث يكون من الأسهل تشغيل أي عينات.TransferClient بإنشاء ملف تكوين وبدء تشغيل برنامج Transfer SDK الخفي: asperatransferdRest لاستدعاءات API البسيطة على Rest APIs.يتطلب نقل SDK ملفات وقت التشغيل التالية:
asperatransferd : قابل للتنفيذ يوفر خدمة gRPCascp : قابل للتنفيذ ينقل الملفات فعليًاascp4 : نسخة أخرى من ascpasync : قابل للتنفيذ للعمليات غير المتزامنةlibafwsfeed : مكتبة لـ 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 هو برنامج خفي يجب تشغيله قبل استخدام Transfer SDK. إنه يدفع نقل الملفات بين نقطتي النهاية باستخدام ascp المضمن. سيتصل تطبيق العميل به باستخدام gRPC على المنفذ المحدد.
لم يتم تحديد طريقة بدء البرنامج الخفي في SDK. يتوفر للمطورين خيار بدء تشغيله يدويًا في محطة طرفية منفصلة، أو إنشاء ملف تكوين ثابت وبدء تشغيله باستخدام طريقة أخرى (على سبيل المثال، خدمة systemd).
الأمثلة المقدمة هنا تبدأ البرنامج الخفي باستخدام فئة 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ملاحظة: يمكن أيضًا استخدام بيانات اعتماد مفتاح الوصول (المعرف والسر) لمستخدم Node API.
توفر المشاركات واجهات برمجة التطبيقات التالية:
<shares url>/node_api .يمكن استخدام نفس الأمثلة الخاصة بـ Node API للمشاركات .
بالنسبة لـ Aspera on Cloud، يلزم وجود العديد من عناصر التكوين:
org : منظمة AoC، أي الاسم الموجود قبل .ibmaspera.com في عنوان URLuser_email : IBMid الخاص بالمستخدمprivate_key : المسار إلى ملف PEM الذي يحتوي على المفتاح الخاص للمستخدم. قام المستخدم بتكوين المفتاح العام المرتبط في ملف تعريف مستخدم AoC الخاص به.client_id : (انظر أدناه) معرف تطبيق العميلclient_secret : (انظر أدناه) سر تطبيق العميل يمكن أن يكون client_id و client_secret :
aspera :aspera.global-cli-clientfrpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb على سبيل المثال، لاستخراج سلاسل Aspera Connect (Drive): strings asperaconnect|grep -B1 '^aspera.drive$'
لاختبار عمليات النقل إلى COS، ستحتاج إلى:
هذا هو الافتراضي في المثال.
أو من الممكن أيضًا استخدام:
private/service_creds.json ، ثم اتبع: احصل على بيانات اعتماد الخدمة