Поиск…


замечания

Резюме из документации

С 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.");
                    }
            }

Этот пример требует следующих зависимостей:

Привет, мир, используя 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

Этот пример требует следующих зависимостей:



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow