다양한 IBM Aspera 제품 및 SDK용 IBM Aspera API를 사용하는 샘플 코드:
다양한 프로그래밍 언어가 제안됩니다.
IBM Aspera API 문서(하단에서 페이지당 24개 항목 선택)
Aspera Transfer SDK 문서에는 코드 샘플이 포함되어 있습니다.
Transfer SDK에 관한 동영상
IBM Aspera Connect SDK github 사이트에는 Aspera Connect SDK 사용에 대한 예제가 포함되어 있습니다.
IBM Aspera는 두 가지 유형의 API를 제공합니다.
클라이언트 API:
SDK에는 파일 전송을 위해 애플리케이션에서 사용되는 라이브러리가 포함되어 있습니다.
서버 API:
REST API(OpenAPI 사양 포함)는 Aspera 애플리케이션(Faspex, AoC, Node API, COS 등)과 상호 작용합니다.
사용 사례에 따라 해당 API 중 하나 또는 (종종) 여러 개를 사용할 수 있습니다.
이 저장소는 다음과 같이 구성됩니다.
web
: 웹 SDK( Aspera Connect SDK 및 Aspera HTTP Gateway SDK 모두)의 사용을 보여주는 예입니다.
app
: Aspera Transfer SDK 및 Aspera 애플리케이션 REST API를 사용하는 다양한 언어의 예
각 언어 폴더 내에서 다음을 찾을 수 있습니다.
README.md
: 해당 언어에 대한 특정 READMEMakefile
: 샘플을 실행하기 위한 makefilesrc
: 소스코드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
로 설정합니다.
Faspex 연결 정보 등 private/config.yaml
에서 필수 매개변수를 편집합니다.
참고: 예, 드래그 앤 드롭, 클릭, 복사/붙여넣기, 메모장 등을 사용하여 파일 편집 등을 할 수도 있습니다.
SDK 폴더 준비
md tmp
Aspera Transfer SDK(여기)를 다운로드하고 해당 콘텐츠를 config/paths.yaml
의 sdk_dir
로 식별된 폴더 <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
다운로드해야 하며 Transfer SDK의 proto 파일을 컴파일하기 위한 일부 도구가 필요합니다. 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
예제에서만 사용됩니다.
다양한 예제에서는 다른 섹션이 사용됩니다. 예를 들어 Transfer SDK를 사용하여 COS 전송만 테스트하려는 경우 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
: 샘플 코드 로그 수준: debug
info
warning
error
trsdk.level
: asperatransferd 로그 수준: trace
debug
info
warning
error
fatal
panic
trsdk.ascp_level
: ascp 로그 수준: debug
info
trace
일부 예에서는 임의 포트를 사용하기 위해 trsdk.url
에서 포트를 0
(영)으로 설정하는 것을 지원합니다.
샘플 애플리케이션은 전송 SDK 데몬에 제공되는 asperatransferd.conf
파일을 생성하며, 로그 수준은 일반 yaml 구성 파일에서 가져옵니다.
Transfer SDK는 애플리케이션에서 파일을 전송할 수 있는 gRPC 서비스입니다. 다양한 언어로 사용할 수 있는 클라이언트 API입니다.
transfer.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
.Transfer SDK에는 다음 런타임 파일이 필요합니다.
asperatransferd
: gRPC 서비스를 제공하는 실행 파일ascp
: 실제로 파일을 전송하는 실행 파일ascp4
: ascp의 다른 버전async
: 비동기 작업을 위해 실행 가능libafwsfeed
: 웹 소켓용 ascp
용 라이브러리aspera-license
: ascp
용 라이센스 파일(무료 사용)선택적 파일:
aspera.conf
: ascp
용 구성 파일product-info.mf
: SDK 버전 정보가 포함된 XML 파일aspera.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
참고: 노드 API 사용자에게도 액세스 키 자격 증명(id 및 secret)을 사용할 수 있습니다.
공유는 다음 API를 제공합니다.
<shares url>/node_api
입니다.Node API 와 동일한 예를 Shares 에 사용할 수 있습니다.
Aspera on Cloud의 경우 여러 구성 항목이 필요합니다.
org
: AoC 조직(예: URL에서 .ibmaspera.com
앞의 이름)user_email
: 사용자의 IBMidprivate_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
파일을 생성하고 다음을 따릅니다. 서비스 자격 증명 가져오기