نموذج التعليمات البرمجية باستخدام 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-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
ملاحظة: الأقسام التي تحتوي على عناوين URL HTTPS لها معلمة
verify
. اضبطه علىfalse
لتعطيل التحقق من صحة شهادة الخادم لبيئات التطوير.
يتم تعريف بعض المسارات النسبية في config/paths.yaml
(حافظ على هذه القيم سليمة).
يمكن تعيين مستويات السجل التالية:
misc.level
: نموذج لمستوى سجل التعليمات البرمجية: error
warning
info
debug
trsdk.level
: مستوى سجل asperatransferd: trace
info
debug
، error
warning
، panic
fatal
trsdk.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 الخفي: asperatransferd
Rest
لاستدعاءات API البسيطة على Rest APIs.يتطلب نقل SDK ملفات وقت التشغيل التالية:
asperatransferd
: قابل للتنفيذ يوفر خدمة gRPCascp
: قابل للتنفيذ ينقل الملفات فعليًاascp4
: نسخة أخرى من ascpasync
: قابل للتنفيذ للعمليات غير المتزامنةlibafwsfeed
: مكتبة لـ 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
هو برنامج خفي يجب تشغيله قبل استخدام 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-client
frpmsRsG4mjZ0PlxCgdJlvONqBg4Vlpz_IX7gXmBMAfsgMLy2FO6CXLodKfKAuhqnCqSptLbe_wdmnm9JRuEPO-PpFqpq_Kb
على سبيل المثال، لاستخراج سلاسل Aspera Connect (Drive): strings asperaconnect|grep -B1 '^aspera.drive$'
لاختبار عمليات النقل إلى COS، ستحتاج إلى:
هذا هو الافتراضي في المثال.
أو من الممكن أيضًا استخدام:
private/service_creds.json
، ثم اتبع: احصل على بيانات اعتماد الخدمة