使用 AWS CLI
AWS 的正式指令行介面與 IBM Storage Ceph as a Service S3 API 相容。
以 Python 撰寫,可透過 pip install awscli 從 Python 套件索引中安裝。 依預設,存取金鑰是從 ~/.aws/credentials 讀取,但也可以設為環境變數。
這些範例是使用 CLI V1.14.2 產生的。 若要檢查已安裝的版本,請執行 aws --version。
設定 CLI 連線至 Object Storage
若要設定 AWS CLI,請輸入 aws configure 並提供您的 HMAC 認證。
aws configure
AWS Access Key ID [None]: {Access Key ID}
AWS Secret Access Key [None]: {Secret Access Key}
Default region name [None]: {Region name}
Default output format [None]: json
此動作會建立兩個檔案:
~/.aws/credentials:
[default]
aws_access_key_id = {Access Key ID}
aws_secret_access_key = {Secret Access Key}
~/.aws/config:
[default]
region = {Region name}
output = json
endpoint_url = {endpoint}
ca_bundle = {CA certificate location}
IBM CephaaS 端點的來源必須使用 --endpoint-url 選項,並可在 aws 配置檔案中設定。
在此 ~/.aws/config 配置檔案中加入您的端點和 CA 憑證位置,而不是在所有 AWS 請求中使用。
您也可以使用環境變數來設定 HMAC 認證:
export AWS_ACCESS_KEY_ID="{Access Key ID}"
export AWS_SECRET_ACCESS_KEY="{Secret Access Key}"
高階語法指令
簡單的用例可以使用 aws s3 <command> 完成。 如需端點的相關資訊,請參閱端點及儲存空間位置。 管理物件時,可使用您熟悉的 Shell 指令,例如 ls、mv、cp 和 rm。 儲存區可以使用 mb 來建立,並使用 rb 予以刪除。
列出服務實例內的所有儲存區
aws s3 ls
2016-09-09 12:48 s3://bucket-1
2016-09-16 21:29 s3://bucket-2
列出儲存區內的物件
aws s3 ls s3://bucket-1
2016-09-28 15:36 837 s3://bucket-1/c1ca2-filename-00001
2016-09-09 12:49 533 s3://bucket-1/c9872-filename-00002
2016-09-28 15:36 14476 s3://bucket-1/98837-filename-00003
2016-09-29 16:24 20950 s3://bucket-1/abfc4-filename-00004
建立新的儲存區
個人識別資訊 (PII):當您_命名_水桶或物件時,請勿使用任何可透過姓名、位置或任何其他方式識別任何使用者(自然人)的資訊。
aws s3 mb s3://bucket-1
make_bucket: s3://bucket-1/
將物件新增至儲存區
aws s3 cp large-dataset.tar.gz s3://bucket-1
upload: ./large-dataset.tar.gz to s3://bucket-1/large-dataset.tar.gz
您也可以設定不同於檔案名稱的新物件金鑰:
aws s3 cp large-dataset.tar.gz s3://bucket-1/large-dataset-for-project-x
upload: ./large-dataset.tar.gz to s3://bucket-1/large-dataset-for-project-x
將物件從一個水桶複製到另一個水桶
$ aws s3 cp s3://bucket-1/new-file s3://bucket-2/
copy: s3://bucket-1/new-file to s3://bucket-2/new-file
從儲存區刪除物件
aws s3 rm s3://mybucket/argparse-1.2.1.tar.gz
delete: s3://mybucket/argparse-1.2.1.tar.gz
移除儲存區
aws s3 rb s3://bucket-1
remove_bucket: s3://bucket-1/
低階語法指令
AWS CLI 也容許透過使用 s3api 指令,提供與直接 HTTP 要求相同回應的直接 API 呼叫。
列出水桶
aws s3api list-buckets
{
"Owner": {
"DisplayName": "{storage-account-uuid}",
"ID": "{storage-account-uuid}"
},
"Buckets": [
{
"CreationDate": "2016-09-09T12:48:52.442Z",
"Name": "bucket-1"
},
{
"CreationDate": "2016-09-16T21:29:00.912Z",
"Name": "bucket-2"
}
]
}
列出儲存區內的物件
aws s3api list-objects --bucket bucket-1
{
"Contents": [
{
"LastModified": "2016-09-28T15:36:56.807Z",
"ETag": "\"13d567d518c650414c50a81805fff7f2\"",
"StorageClass": "STANDARD",
"Key": "c1ca2-filename-00001",
"Owner": {
"DisplayName": "{storage-account-uuid}",
"ID": "{storage-account-uuid}"
},
"Size": 837
},
{
"LastModified": "2016-09-09T12:49:58.018Z",
"ETag": "\"3ca744fa96cb95e92081708887f63de5\"",
"StorageClass": "STANDARD",
"Key": "c9872-filename-00002",
"Owner": {
"DisplayName": "{storage-account-uuid}",
"ID": "{storage-account-uuid}"
},
"Size": 533
},
{
"LastModified": "2016-09-28T15:36:17.573Z",
"ETag": "\"a54ed08bcb07c28f89f4b14ff54ce5b7\"",
"StorageClass": "STANDARD",
"Key": "98837-filename-00003",
"Owner": {
"DisplayName": "{storage-account-uuid}",
"ID": "{storage-account-uuid}"
},
"Size": 14476
},
{
"LastModified": "2016-10-06T14:46:26.923Z",
"ETag": "\"2bcc8ee6bc1e4b8cd2f9a1d61d817ed2\"",
"StorageClass": "STANDARD",
"Key": "abfc4-filename-00004",
"Owner": {
"DisplayName": "{storage-account-uuid}",
"ID": "{storage-account-uuid}"
},
"Size": 20950
}
]
}
後續步驟
IBM Storage Ceph as a Service 的 RESTful API 詳細說明,請參閱 API 文件。