Чтобы подключиться к Объектному хранилищу с помощью SDK необходимо установить нужные инструменты или SDK:
- Инструменты для PowerShell.
- SDK для Java.
- SDK для .NET.
- SDK для JavaScript.
- SDK для Ruby.
- SDK для Python (Boto3).
- SDK для PHP.
- SDK для Go.
- Mobile SDK для iOS и Android.
Примеры операций:
Python
boto3 представляет собой набор инструментов разработки (SDK) для языков программирования Python версии 3.x. Эти SDK предназначены для взаимодействия с сервисами AWS.
Для установки boto, ознакомьтесь с подробностями в документации boto3.
В домашнем каталоге необходимо создать файл конфигурации по пути ~/.aws/credentials:
[default]
aws_access_key_id = <access_key>
aws_secret_access_key = <secret_key>
В домашнем каталоге необходимо создать конфигурационный файл ~/.aws/config:
[default]
region=default
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import boto3
# Авторизация
s3 = boto3.client(
service_name='s3',
endpoint_url='https://s3.inferit.cloud/'
)
# Загрузка объекта из строки
s3.put_object(Bucket="BucketName", Key="ObjectName1", Body="Test")
# Загрузка объекта из файла
s3.upload_file("data.docx", "BucketName", "ObjectName2")
# Получение списка объектов в контейнере
for key in s3.list_objects(Bucket="BucketName")["Contents"]:
print(key["Key"])
# Скачивание объекта
get_object_response = s3.get_object(Bucket="BucketName", Key="ObjectName2")
print(get_object_response["Body"].read())
# Удаление нескольких объектов
objects_to_delete = [{"Key": "ObjectName1"}, {"Key": "ObjectName2"}]
s3.delete_objects(Bucket="BucketName", Delete={"Objects": objects_to_delete})
PHP
AWS SDK для PHP — это набор инструментов разработки, предназначенный для взаимодействия с сервисами AWS.
Данный SDK представляет собой современную библиотеку PHP с открытым кодом, которая значительно упрощает интеграцию PHP-приложений с объектным хранилищем S3.
Чтобы подключить библиотеку с использованием менеджера зависимостей Composer, следуйте следующим шагам:
- Установите Composer:
curl -sS 'https://getcomposer.org/installer' | php
- Запустите команду Composer для установки последней стабильной версии SDK:
php composer.phar require aws/aws-sdk-php
- Включите aws-sdk-php в свой скрипт. Для авторизации необходимо указать значения Access Key и Secret Key.
<?php
require "vendor/autoload.php";
use Aws\S3\S3Client;
// Создание клиента
$s3Client = new S3Client([
"version" => "latest",
"region" => "default",
"use_path_style_endpoint" => true,
"credentials" => [
"key" => "<access_key>",
"secret" => "<secret_key>",
],
"endpoint" => "https://s3.inferit.cloud/"
]);
// Загрузка объекта из строки
$s3Client->putObject([
"Bucket" => "BucketName",
"Key" => "ObjectName",
"Body" => "Test"
]);
// Скачивание объекта
$result = $s3Client->getObject([
"Bucket" => "BucketName",
"Key" => "ObjectName"
]);
echo $result["Body"];
Java
// Авторизация
AWSCredentials credentials = new BasicAWSCredentials(
"<access_key>",
"<secret_key>"
);
EndpointConfiguration endpoint =
new EndpointConfiguration("https://s3.inferit.cloud/", "default");
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withPathStyleAccessEnabled(true)
.withEndpointConfiguration(endpoint)
.build();
// Загрузка объекта
s3client.putObject(
bucketName,
objectName,
"sample-data"
);
// Скачать объект
S3Object s3object = s3client.getObject(bucketName, objectName);
S3ObjectInputStream inputStream = s3object.getObjectContent();
inputStream.transferTo(new FileOutputStream("downloaded-object"));
// Удалить объект
s3client.deleteObject(bucketName, objectName);
// Удалить бакет
s3client.deleteBucket(bucketName);