amazon-s3 учебник
Начало работы с amazon-s3
Поиск…
замечания
Резюме из документации
С http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html
Amazon Simple Storage Service - это хранилище для Интернета. Он предназначен для упрощения веб-вычислений для разработчиков.
Amazon S3 имеет простой интерфейс веб-сервисов, который вы можете использовать для хранения и получения любого объема данных в любое время из любого места в Интернете. Это дает любому разработчику доступ к той же высокомасштабируемой, надежной, быстрой и недорогой инфраструктуре хранения данных, которую Amazon использует для запуска собственной глобальной сети веб-сайтов. Услуга направлена на максимизацию преимуществ масштаба и передачу этих преимуществ разработчикам.
Поддержка языков и скриптов
S3 не является языком разработки как таковой, а облачной платформой, которая поддерживает запросы веб-сервисов. Существует множество инструментов и SDK , которые публикуются Amazon. SDK языка обеспечивает прозрачный доступ к S3, обрабатывая такие задачи, как запросы веб-сервисов, аутентификацию, управление сеансом, обновление токена и т. Д. Существуют также интерфейсы командной строки для bash / windows / ios и powershell .
S3 API
API веб-сервисов S3 поддерживается конкурирующими поставщиками . Этот раздел в настоящее время не охватывает API напрямую, поэтому приведенные здесь примеры не будут полезны для создания приложений, которые подключаются к конкурирующим системам, которые используют S3 API.
Версии
По состоянию на 28 марта 2017 года CLI AWS имеет 174 версии, которые полностью задокументированы в примечаниях к выпуску CLI . Amazon S3 имеет 66 версий, некоторые из которых должны объявить о добавлении нового региона, а другие - добавить функциональность. Они описаны в примечаниях к выпуску S3 .
Примеры
Что касается примеров, показанных до сих пор в этом разделе «Начало работы», Amazon S3 полезен разработчикам для следующих вариантов использования:
- Храните или создавайте резервные копии файлов в высокопроизводительной, долговечной системе, тем самым выгружая эту задачу из не облачных архитектур: файловых систем linux и windows. Очень дорого воссоздать долговечность и уровень производительности S3, используя серверы на местах или экземпляры EC2.
- Когда пропускная способность сети является проблемой, например, в случаях, когда несколько одновременных пользователей должны загружать большие файлы, перемещение данных на S3 может быть использовано в качестве способа для приложения, чтобы уменьшить нехватку полосы пропускания в центре обработки данных или на локальном сервере . Это способ распространения большого репозитория кода, изображений виртуальной машины, видео или установщиков программного обеспечения. Время загрузки пользователя и время загрузки пользователя могут быть улучшены. [Для дополнительной производительности в очень больших сценариях для пользователей система доставки контента, такая как облачный режим, может использоваться для кэширования файлов, расположенных ближе к пользователям.]
- Вашему приложению необходимо создать или использовать большой файл, и вам нужен способ разрешить пользователям доступ к нему или его внесение.
- Распределение приложений очень велико, и вам нужно поделиться им с пользователями.
- Вы собираете конвейер непрерывной доставки и, например, размещаете части своего сайта на Amazon S3.
На этом этапе примеры не показывают, как сделать следующее:
- Примеры, хотя быстрее и яснее, чем набирать
aws s3 help, do not mention some of the commands covered in help, such as
описанныхaws s3 help, do not mention some of the commands covered in help, such as
aws s3 website`. - Как разделить или ограничить доступ пользователей. Без явного ограничения примеры будут работать только для пользователей, которые используют одну и ту же учетную запись AWS.
- Как защитить данные с помощью шифрования. Обратите внимание, что AWS делает позицию S3 более высокой, чем данные, хранящиеся в EC2. Рекомендации по безопасности AWS, август 2016 года, стр. 27
Безопасность
AWS рекомендует просматривать S3 в качестве безопасной платформы:
Если у вас нет более строгих требований в отношении бизнеса или соответствия требованиям, вам не нужно вводить дополнительные уровни защиты, кроме тех, которые предусмотрены безопасной глобальной инфраструктурой AWS. там же. стр.2
В своем руководстве по безопасности AWS рекомендует использовать AWS-аутентификацию как подходящую для S3. там же. п. 27
Кроме того, S3 обеспечивает шифрование на стороне сервера или шифрование на стороне клиента. Шифрование на стороне клиента предоставляется прозрачно с помощью SDK Java SDK; ключи не должны храниться на AWS. там же. п. 28
Версии
название версии | описание | заметки | Дата выхода |
---|---|---|---|
Amazon S3 - 2016-12-13 | Добавляет Лондонский регион | заметки | 2016-12-13 |
Установка CLI AWS для доступа к S3
Установка aws cli в Ubuntu / Debian Instance
sudo apt-get install -y python-dev python-pip
sudo pip install awscli
aws --version
aws configure
Установка aws cli с использованием python
Используя pip, вы можете установить aws cli в windows, OS X и Linux
sudo pip install awscli
Настройка интерфейса командной строки AWS
В этом разделе объясняется, как настроить параметры, используемые интерфейсом командной строки AWS при взаимодействии с AWS, например, ваши учетные данные безопасности и область по умолчанию.
$ aws configure
AWS Access Key ID [None]: <Your access key >
AWS Secret Access Key [None]: <Your secret key>
Default region name [None]: us-west-2
Default output format [None]: json
Получить ключ доступа и секретный ключ со страницы учетной записи в AWS
Создание ковшей
Используйте команду aws s3 mb для создания нового ведра. Имена контейнеров должны быть уникальными и должны соответствовать требованиям DNS. Имена ковша могут содержать строчные буквы, цифры, дефисы и периоды
aws s3 mb s3://bucket-name
Удаление ковшей
Чтобы удалить ведро, используйте команду aws s3 rb. По умолчанию ведро должно быть пустым.
aws s3 rb s3://bucket-name
Чтобы удалить непустое ведро, вам необходимо включить параметр -force.
aws s3 rb s3://bucket-name --force
Листинговые ковши
Чтобы перечислить все ведра или их содержимое, используйте команду aws s3 ls
aws s3 ls
aws s3 ls s3://bucket-name
Следующая команда перечисляет объекты в bucket-name / path
aws s3 ls s3://bucket-name/path
Синхронизация файлов между локальной файловой системой и S3
aws s3 sync . s3://my-bucket/path
Он загрузит все файлы в текущем каталоге на S3. Чтобы загрузить файлы из S3 в текущий каталог, выполните
aws s3 sync s3://my-bucket/path .
Список команд AWS CLI S3
Список часто используемых команд консоли S3 AWS
Создать ведро
aws s3 mb s3://bucket-name
Удалить ведро
aws s3 rb s3://bucket-name
Список ковшей
aws s3 ls
Список содержимого внутри ведра
aws s3 ls s3://bucket-name
Список ведра с дорожкой
aws s3 ls s3://bucket-name/path
Копировать файл
aws s3 cp file.txt s3://my-bucket/
Синхронизировать файлы
aws s3 sync . s3://my-bucket/path
Удалить локальный файл
rm ./MyFile1.txt
Попытка синхронизации без опции --delete - ничего не происходит
aws s3 sync . s3://my-bucket/path
Синхронизация с удалением - объект удаляется из ведра
aws s3 sync . s3://my-bucket/path --delete
Удалить объект из ведра
aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt
Синхронизация с удалением - удаляется локальный файл
aws s3 sync s3://my-bucket/path . --delete
Синхронизация с классом хранения нечетного доступа
aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA
Скопируйте файл MyFile.txt в текущий каталог на s3: // my-bucket / path
aws s3 cp MyFile.txt s3://my-bucket/path/
Переместите все .jpg файлы в s3: // my-bucket / путь к ./MyDirectory
aws s3 mv s3://my-bucket/path ./MyDirectory --exclude '*' --include '*.jpg' --recursive
Список содержимого моего ведра
aws s3 ls s3://my-bucket
Перечислить содержимое пути в моем ковше
aws s3 ls s3://my-bucket/path
Удалить s3: //my-bucket/path/MyFile.txt
aws s3 rm s3://my-bucket/path/MyFile.txt
Удалить s3: // my-bucket / path и все его содержимое
aws s3 rm s3://my-bucket/path --recursive
Пример Hello World с использованием Java
Этот пример пытается создать ведро, называемое «hello-world», и, поскольку ведро hello-world уже создано кем-то еще в глобальном пространстве имен S3, выдает следующее исключение. Измените «hello-world» на что-то еще, чтобы избежать исключения, создав одноименный ведро. Созданное таким образом новое ведро можно удалить с помощью консоли AWS
Исключение в потоке «main» com.amazonaws.services.s3.model.AmazonS3Exception: запрошенное имя ковша недоступно. Пространство имен ведра используется всеми пользователями системы. Выберите другое имя и повторите попытку. (Сервис: Amazon S3; Код состояния: 409; Код ошибки: BucketAlreadyExists; Идентификатор запроса: ...
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CreateBucketRequest;
import com.amazonaws.services.s3.model.Bucket;
/** S3 "hello world" example. */
public class S3Hello {
/** Name of hello-world bucket -- must be globally unique. The
* bucket namespace is shared by all users of the system.
*/
static final String BUCKET_NAME = "hello-world";
/** Creates bucket
* @param args Command line arguments
*/
public static void main(final String[] args) {
AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
CreateBucketRequest request
= new CreateBucketRequest(BUCKET_NAME);
Bucket bucket = s3.createBucket(request);
System.out.println("S3 Hello World completed.");
}
}
Этот пример требует следующих зависимостей:
- Java установлена с консолью.
- Установлен AWS Java SDK. https://aws.amazon.com/sdk-for-java/
- Учетные
credentials
учетныхcredentials
установленных в .aws в вашем домашнем каталоге. https://aws.amazon.com/developers/getting-started/java/ - Учетные данные для администрирования или создания прав на ведро в S3. http://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-buckets
Привет, мир, используя PowerShell
Этот пример ожидает ошибки, поскольку ведро hello-world уже существует, а S3 использует глобальное пространство имен.
New-S3Bucket -BucketName "hello-world"
New-S3Bucket: запрашиваемое имя ковша недоступно. Пространство имен ведра используется всеми пользователями системы. Выберите другое имя и повторите попытку.
Если вы замените hello-world другим уникальным, то ведро будет создано без ошибок, и вы получите следующий результат:
CreationDate BucketName ------------ ---------- 3/30/2017 11:43:03 PM hello-world-832jklsdJF
Этот пример требует следующих зависимостей:
PowerShell. См. Http://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html.
Полномочия. Они могут быть созданы с помощью консоли AWS. Существует несколько вариантов управления ими с помощью PowerShell. Ниже приведен простой пример настройки. См. Http://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html.
PS C:\> Set-AWSCredentials -AccessKey AKIAIOSFODNN7LAJD8A -SecretKey "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEjw9JFKS3" -StoreAs default