سرویس آبجکت‌استوریج ستون با 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