Skip to main content
Skip table of contents

Object Storage

SkyAtlas API ile nesne depolama hizmeti hem Swift hemde S3 protokollerini desteklemektedir.

Swift Protokolü kullanılarak SkyAtlas API ile yapılabilecek işlemler; 

  • Her biri varsayılan olarak 5 GB olmak şartıyla sınırsız nesne saklanması

  • Herhangi bir boyuttaki nesnelerin oluşturulması ve saklanması

  • Nesne güvenliğini sağlamak için Cross-origin paylaşımın kullanılması

  • İçerik şifreleme ile dosyaların sıkıştırılması

  • Nesnelerin silinmesi için takvim oluşturma

  • Tek istekte 10.000 adet nesnenin toplu halde silinmesi

S3 Protokolü kullanılarak SkyAtlas API ile yapılabilecek işlemler;

  • Her biri varsayılan olarak 5 TB olmak şartıyla sınırsız nesne saklanması

  • Herhangi bir boyuttaki nesnelerin oluşturulması ve saklanması

  • Nesne güvenliğini sağlamak için Cross-origin paylaşımın kullanılması

  • İçerik şifreleme ile dosyaların sıkıştırılması

  • Nesnelerin silinmesi için takvim oluşturma

  • Tek istekte 10.000 adet nesnenin toplu halde silinmesi

Swift Protokolü Kullanılarak SkyAtlas API;

Curl ile komutları kısaltmak için aşağıda belirtilen yöntemi kullanabilirsiniz.

CODE
export publicURL = https://panel.skyatlas.cloud:6780/swift/v1/AUTH_46b92468aef14027abd2173ee4f92736

Accounts

Methods

GET

/v1/{account}

Show account details and list containers

POST

/v1/{account}

create, update, or delete account metadata

HEAD

/v1/{account}

Show account metadata

GET
(Object Storage account detaylarını görmek ve containerları listelemek için kullanılır)

curl

CODE
curl -i "$publicURL?format=json" -X GET -H "X-Auth-Token: $token"

Python

CODE
response = requests.get(
   url=osurl+":6780/swift/v1/"+account+"?format=json",
   headers={"x-auth-token": token_id}
   )
print(response.headers)
print(response.content)

POST

(account metadataları oluşturmak, güncellemek ve silmek için)

X-Account-Meta-{name} şablonu kullanılır {name} ibaresi yerine eklenmek istenen metadata parametresi eklenir.

Oluşturmak için;

curl

CODE
curl -i "$publicURL" -X POST -H "X-Auth-Token: $token" -H "X-Account-Meta-Book: MobyDick" -H "X-Account-Meta-Subject: Literature"

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account,
   headers={"X-Auth-Token": token_id,"X-Account-Meta-Book": "MobyDick","X-Account-Meta-Subject": "Literature"}
   )

Güncellemek için;

curl

CODE
curl -i "$publicURL" -X POST -H "X-Auth-Token: $token" -H "X-Account-Meta-Subject: AmericanLiterature"

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account,
   headers={"X-Auth-Token": token_id,"X-Account-Meta-Subject": "AmericanLiterature"}
   )

Silmek için;

curl

CODE
curl -i "$publicURL" -X POST -H "X-Auth-Token: $token" -H "X-Remove-Account-Meta-Book: x" -H “X-Remove-Account-Meta-Subject: x”

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account,
   headers={"X-Auth-Token": token_id,"X-Remove-Account-Meta-Book": "x","X-Remove-Account-Meta-Subject": "x"}
   )

HEAD

(account metadatalarını görmek için)

curl

CODE
curl -i "$publicURL" -I -H "X-Auth-Token: $token"

Python

CODE
response = requests.head(
   url=osurl+":6780/swift/v1/"+account,
   headers={"X-Auth-Token": token_id}
   )
print(response.headers)

Containers

Methods

GET

/v1/{account}/{container}

Show container details and list objects

PUT

/v1/{account}/{container}

Create container

POST

/v1/{account}/{container}

Create, update, or delete container metadata

HEAD

/v1/{account}/{container}

Show container metadata

DELETE

/v1/{account}/{container}

Delete container

GET
(container detaylarını görmek ve container ları listelemek için)

curl

CODE
curl -i "$publicURL/test" -X GET -H "X-Auth-Token: $token"

Python

CODE
response = requests.get(
   url=osurl+":6780/swift/v1/"+account+"/test",
   headers={"x-auth-token": token_id}
   )
print(response.content)
PUT
(container oluşturmak için)

curl

CODE
curl -i "$publicURL/test" -X PUT -H "Content-Length: 0" -H "X-Auth-Token: $token"

Python

CODE
response = requests.put(
   url=osurl+":6780/swift/v1/"+account+"/test",
   headers={"x-auth-token": token_id}
   )
print(response.content)
POST

(container metadataları oluşturmak, güncellemek ve silmek için)

X-Container-Meta-{name} şablonu kullanılır {name} ibaresi yerine eklenmek istenen metadata parametresi eklenir.

Oluşturmak için;

curl

CODE
curl -i "$publicURL/test" -X POST -H "X-Auth-Token: $token" -H "X-Container-Meta-Book: MobyDick" -H "X-Container-Meta-Subject: Literature"

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account+"/test",
   headers={"X-Auth-Token": token_id,"X-Container-Meta-Book": "MobyDick","X-Container-Meta-Subject": "Literature"}
   )

Güncellemek için;

curl

CODE
curl -i "$publicURL/test" -X POST -H "X-Auth-Token: $token" -H "X-Container-Meta-Subject: AmericanLiterature"

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account+"/test",
   headers={"X-Auth-Token": token_id,"X-Container-Meta-Subject": "AmericanLiterature"}
   )

Silmek için;

curl

CODE
curl -i "$publicURL/test" -X POST -H "X-Auth-Token: $token" -H "X-Remove-Container-Meta-Book: x" -H “X-Remove-Container-Meta-Subject: x”

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account+"/test",
   headers={"X-Auth-Token": token_id,"X-Remove-Container-Meta-Book": "x","X-Remove-Container-Meta-Subject": "x"}
   )
HEAD

(container metadataları görmek için)

curl

CODE
curl -i "$publicURL/test" -I -H "X-Auth-Token: $token"

Python

CODE
response = requests.head(
   url=osurl+":6780/swift/v1/"+account+"/test",
   headers={"X-Auth-Token": token_id}
   )
print(response.headers)
DELETE

(container silmek için)

curl

CODE
curl -i "$publicURL/test" -X DELETE -H "X-Auth-Token: $token"

Python

CODE
response = requests.delete(
   url=osurl+":6780/swift/v1/"+account+"/test",
   headers={"X-Auth-Token": token_id}
   )
print(response.headers)

Objects

Methods

GET

/v1/{account}/{container}/{object}

Get object content and metadata

PUT

/v1/{account}/{container}/{object}

Create or replace object

COPY

/v1/{account}/{container}/{object}

Copy object

DELETE

/v1/{account}/{container}/{object}

Delete object

HEAD

/v1/{account}/{container}/{object}

Show object metadata

POST

/v1/{account}/{container}/{object}

Create or update object metadata

GET
(object detaylarını görmek ve objeleri listelemek için)

curl

CODE
curl -i "$publicURL/test/object.txt" -X GET -H "X-Auth-Token: $token"

Python

CODE
response = requests.get(
   url=osurl+":6780/swift/v1/"+account+"/test/object.txt",
   headers={"x-auth-token": token_id}
   )
print(response.headers)
print(response.content)
PUT
(object oluşturmak veya objeleri değiştirmek için)

curl

CODE
curl -i "$publicURL/test/hello.txt" -X PUT -d “Hello” -H "Content-Type: text/html; charset=UTF-8" -H "X-Auth-Token: $token"

Python

CODE
response = requests.put(
   url=osurl+":6780/swift/v1/"+account+"/test/hello.txt",
   headers={"x-auth-token": token_id}
   data=”HELLO”
   )
COPY

(object kopyalamak için)

İki farklı kullanımı var

curl

CODE
curl -i "$publicURL/test/hello.txt" -X COPY -H "Destination: test/goodby.txt" -H "Content-Type: text/html; charset=UTF-8" -H "X-Auth-Token: $token"
CODE
curl -i "$publicURL/test/hello.txt" -X PUT -H "X-Copy-From: /test/hello.txt" -H "Content-Length: 0" -H "X-Auth-Token: $token"

Python

CODE
response = requests.put(
   url=osurl+":6780/swift/v1/"+account+"/test/goodby.txt",
   headers={"x-auth-token": token_id, "X-Copy-From": "test/hello.txt", "Content-Length": "0"}
   )
DELETE

(object silmek için)

curl

CODE
curl -i "$publicURL/test/goodby.txt" -X DELETE -H "X-Auth-Token: $token"

Python

CODE
response = requests.delete(
   url=osurl+":6780/swift/v1/"+account+"/test/goodby.txt",
   headers={"X-Auth-Token": token_id}
   )
print(response.headers)
HEAD

(object metadataları görmek için)

curl

CODE
curl -i "$publicURL/test/hello.txt" -I -H "X-Auth-Token: $token"

Python

CODE
response = requests.head(
   url=osurl+":6780/swift/v1/"+account+"/test/hello.txt",
   headers={"X-Auth-Token": token_id}
   )
print(response.headers)
POST

(object metadataları oluşturmak, güncellemek ve silmek için)

X-Object-Meta-{name} şablonu kullanılır {name} ibaresi yerine eklenmek istenen metadata parametresi eklenir.

Oluşturmak için;

curl

CODE
curl -i "$publicURL/test/hello.txt" -X POST -H "X-Auth-Token: $token" -H "X-Object-Meta-Book: MobyDick" -H "X-Object-Meta-Subject: Literature"

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account+"/test/hello.txt",
   headers={"X-Auth-Token": token_id,"X-Object-Meta-Book": "MobyDick","X-Object-Meta-Subject": "Literature"}
   )

Güncellemek için;

curl

CODE
curl -i "$publicURL/test/hello.txt" -X POST -H "X-Auth-Token: $token" -H "X-Object-Meta-Subject: AmericanLiterature"

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account+"/test/hello.txt",
   headers={"X-Auth-Token": token_id,"X-Object-Meta-Subject": "AmericanLiterature"}
   )

Silmek için;

curl

CODE
curl -i "$publicURL/test/hello.txt" -X POST -H "X-Auth-Token: $token" -H "X-Remove-Object-Meta-Book: x" -H “X-Remove-Object-Meta-Subject: x”

Python

CODE
response = requests.post(
   url=osurl+":6780/swift/v1/"+account+"/test/hello.txt",
   headers={"X-Auth-Token": token_id,"X-Remove-Object-Meta-Book": "x","X-Remove-Object-Meta-Subject": "x"}
   )

S3 Protokolü Kullanılarak SkyAtlas API;

İlk olarak CLI üzerinden erişim sağlanarak s3 protokolü ile erişim sağlamak amacıyla credentials oluşturulur.

CODE
openstack --os-interface public ec2 credentials create
CODE
+------------+-----------------------------------------------------------+
| Field      | Value                                                     |
+------------+-----------------------------------------------------------+
| access     | 8be009d585bd4284b17af25c3c9030ba                          |
| links      | {'self': 'https://panel.skyatlas.cloud:5000/v3/users/5afd0a74627642fa896a945ba91116f4/credentials/OS-EC2/8be009d585bd4284b17af25c3c9030ba'}               |
| project_id | 46b92468aef14027abd2173ee4f92736                          |
| secret     | 079ea90f01c1470c88c88e0d3667286b                          |
| trust_id   | None                                                      |
| user_id    | 5afd0a74627642fa896a945ba91116f4                          |
+------------+-----------------------------------------------------------+

Python

CODE
import boto
import boto.s3.connection

access_key = '3636545c19334404b7e583ffa31273de'
secret_key = '917c360ac74c4f96889b12f46b0f4u15'

conn = boto.connect_s3(
       aws_access_key_id = access_key,
       aws_secret_access_key = secret_key,
       host = 'panel.skyatlas.cloud',
       port=6780,
       is_secure=False,      # uncomment if you are not using ssl
       calling_format = boto.s3.connection.OrdinaryCallingFormat(),
       )

for bucket in conn.get_all_buckets():
       print("{name}\t{created}".format(
               name = bucket.name,
               created = bucket.creation_date,
       ))    

bucket = conn.create_bucket('my-new-bucket')

for key in bucket.list():
      print("{name}\t{size}\t{modified}".format(
              name = key.name,
              size = key.size,
              modified = key.last_modified,
      ))

bucket = conn.get_bucket(bucket_name="my-new-bucket")
key = bucket.new_key('hello.txt')
key.set_contents_from_string('Hello World!')

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.