سرویس آبجکتاستوریج ستون با API سرویس S3 آمازون سازگار است و به همین دلیل میتوان از ابزارهای CLI مانند awscli برای کار با آن استفاده کرد. در اینجا ما نحوه استفاده از سرویس آبجکتاستوریج را با awscli به صورت مختصر توضیح خواهیم داد.
نصب
ابتدا لازم است تا awscli را بر روی سیستمعامل خود نصب کنید.
نصب بر روی لینوکس:
# Requires Python 2.6.5 or higher. Install using pip:
pip install awscli
نصب بر روی ویندوز:
پیکربندی
دستور aws configure را اجرا کنید و به جای ACCESS_KEY و SECRET_KEY مقادیری را که از پنل ستون گرفتهاید، قرار دهید. دو مورد بعدی یعنی region name و output format را خالی بگذارید.
$ aws configure
AWS Access Key ID [None]: ACCESS_KEY
AWS Secret Access Key [None]: SECRET_KEY
Default region name [None]:
Default output format [None]:
دستورات مفید
لیست کردن همهی سبدها (buckets):
aws s3 --endpoint-url=http://KISE_ENDPOINT/ ls s3://
ساختن سبد جدید:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ mb s3://BUCKET_NAME_HERE/
ساخت سبد جدید از نوع hiops:
s3cmd --endpoint-url=http://KISE_ENDPOINT/ --bucket-location=:hiops mb s3://buck
لیست فایلهای یک سبد:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ ls s3://BUCKET_NAME_HERE/
بارگذاری یک فایل در یک سبد:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ cp my_local_folder/test1.png s3://BUCKET_NAME_HERE
بارگذاری همه فایلهای یک پوشه در یک سبد:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ cp --recursive my_local_folder s3://BUCKET_NAME_HERE
برای همگامسازی محتویات یک پوشه دستور زیر را اجرا کنید. این دستور به صورت خودکار فایلهای جدید را به سبد اضافه میکند.
aws s3 --endpoint-url=http://KISE_ENDPOINT/ sync my_local_folder s3://BUCKET_NAME_HERE
دانلود یک فایل:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ cp s3://BUCKET_NAME_HERE/test1.png my_local_folder/
دانلود یک پوشه و همه محتویات آن:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ cp --recursive s3://BUCKET_NAME_HERE/myfolder/ my_local_folder/
پاککردن یک فایل:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ rm s3://BUCKET_NAME_HERE/test1.png
پاککردن همه فایلهای یک پوشه:
aws s3 --endpoint-url=http://KISE_ENDPOINT/ rm --recursive s3://BUCKET_NAME_HERE/myfolder
مشاهده help:
aws s3 help
# help on specific command e.g. ls
aws s3 ls help
ابزارهای CLI جایگزین:
در کد برنامه (API)
پایتون:
کلاینت boto را نصب کنید.
pip install boto
کد نمونه:
import boto
import boto.s3.connection
access_key = 'ACCESS_KEY'
secret_key = 'SECRET_KEY'
s3_host = 'KISE_ENDPOINT'
conn = boto.connect_s3(aws_access_key_id=access_key, aws_secret_access_key=secret_key,
host=s3_host, is_secure=False,
calling_format=boto.s3.connection.OrdinaryCallingFormat())
for bucket in conn.get_all_buckets():
print bucket.name, bucket.creation_date
endpointهای سرویس آبجکتاستوریج
endpointهایی که برای سرویس آبجکتاستوریج در هر یک از مرکزدادههای موجود، برای کلاینت boto تعریف شدهاند در ادامه آمده است:
مرکزدادهی افرا http://s3.thr2.sotoon.ir
مرکزدادهی ندا http://s3.thr1.sotoon.ir
Golang:
کلاینت minio را نصب کنید.
go get -u github.com/minio/minio-go
کد نمونه:
package main
import (
"fmt"
"log"
"github.com/minio/minio-go"
)
func main() {
endpoint := "KISE_ENDPOINT"
accessKey := "ACCESS_KEY"
secretKey := "SECRET_KEY"
useSSL := false
client, err := minio.New(endpoint, accessKey, secretKey, useSSL)
if err != nil {
log.Fatal(err)
}
buckets, _ := client.ListBuckets()
for _, b := range buckets {
fmt.Println(b.Name, b.CreationDate)
}
}
endpointهای سرویس آبجکتاستوریج
endpointهایی که برای سرویس آبجکتاستوریج در هر یک از مرکزدادههای موجود، برای کلاینت minio تعریف شدهاند در ادامه آمده است:
مرکزدادهی افرا: http://s3.thr2.sotoon.ir
مرکزدادهی ندا: http://s3.thr1.sotoon.ir