Szukaj…


Uwagi

Podsumowanie z dokumentacji

Od http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html

Usługa Amazon Simple Storage to pamięć internetowa. Został zaprojektowany, aby ułatwić programistom przetwarzanie w sieci.

Amazon S3 ma prosty interfejs usług internetowych, za pomocą którego można przechowywać i pobierać dowolną ilość danych w dowolnym czasie i z dowolnego miejsca w sieci. Daje to każdemu deweloperowi dostęp do tej samej wysoce skalowalnej, niezawodnej, szybkiej i niedrogiej infrastruktury do przechowywania danych, której Amazon używa do prowadzenia własnej globalnej sieci stron internetowych. Usługa ma na celu maksymalizację korzyści skali i przekazanie tych korzyści programistom.

Obsługa języka i skryptów

S3 nie jest językiem programowania jako takim, ale platformą chmurową obsługującą żądania usług sieciowych. Istnieje asortyment narzędzi i zestawów SDK, które są publikowane przez Amazon. Językowe zestawy SDK zapewniają przejrzysty dostęp do S3, obsługując zadania takie jak żądania usług internetowych, uwierzytelnianie, zarządzanie sesjami, odnawianie tokenów itp. Istnieją również interfejsy wiersza poleceń dla bash / windows / ios i PowerShell .

Interfejs API S3

Interfejs API usług sieciowych S3 jest obsługiwany przez konkurujących dostawców . Ten temat nie obejmuje obecnie bezpośrednio interfejsu API, więc podane tutaj przykłady nie byłyby przydatne do budowania aplikacji łączących się z konkurencyjnymi systemami wykorzystującymi interfejs API S3.

Wersje

Na dzień 28 marca 2017 r. Interfejs AWS CLI ma 174 wersje, które są dokładnie udokumentowane w Informacjach o wersji CLI . Amazon S3 ma 66 wersji, z których niektóre mają ogłosić dodanie nowego regionu, a inne mają dodać funkcjonalność. Są one udokumentowane w Uwagach do wydania S3 .

Przykłady

W odniesieniu do przykładów pokazanych do tej pory w tej sekcji „Pierwsze kroki” Amazon S3 jest przydatny dla programistów w następujących przypadkach użycia:

  • Przechowuj lub twórz kopie zapasowe plików w wysokowydajnym, trwałym systemie, odciążając to zadanie od architektur niebędących chmurą: systemów plików Linux i Windows. Odtworzenie poziomów trwałości i wydajności S3 przy użyciu serwerów lokalnych lub instancji EC2 jest kosztowne.
  • Gdy przepustowość sieci stanowi problem, na przykład w przypadkach, gdy wielu jednoczesnych użytkowników musi pobierać duże pliki, przenoszenie danych do S3 może być wykorzystane jako sposób na złagodzenie niedoborów przepustowości przez aplikację do centrum danych lub serwera lokalnego . Jest to sposób dystrybucji dużego repozytorium kodu, obrazów maszyn wirtualnych, wideo lub instalatorów oprogramowania. Czas przesyłania użytkownika i czas pobierania użytkownika można poprawić. [Aby zwiększyć wydajność w bardzo dużych scenariuszach bazowych dla użytkowników, system dostarczania treści, taki jak Cloudfront, może być używany do buforowania plików bliżej użytkowników.]
  • Twoja aplikacja musi utworzyć lub zużyć duży plik i potrzebujesz sposobu, aby umożliwić użytkownikom dostęp do niego lub zdeponowanie go.
  • Twoja dystrybucja aplikacji jest bardzo duża i musisz ją udostępnić użytkownikom.
  • Przygotowujesz ciągły plan dostaw i na przykład hostujesz części swojej witryny na Amazon S3.

W tym momencie przykłady nie pokazują, jak wykonać następujące czynności:

  • Przykłady, chociaż szybsze i bardziej zrozumiałe niż pisanie aws s3 help, do not mention some of the commands covered in help, such as aws s3`.
  • Jak udostępnić lub ograniczyć dostęp użytkownika. Bez wyraźnego ograniczenia przykłady będą działać tylko dla użytkowników korzystających z tego samego konta AWS.
  • Jak zabezpieczyć dane za pomocą szyfrowania. Należy zauważyć, że AWS pozycjonuje S3 jako posiadające wyższy poziom bezpieczeństwa niż dane przechowywane w EC2. AWS Security Best Practices, sierpień 2016, s. 1 27

Bezpieczeństwo

AWS zaleca postrzeganie S3 jako bezpiecznej platformy:

O ile nie masz bardziej rygorystycznych wymagań biznesowych lub dotyczących zgodności, nie musisz wprowadzać dodatkowych warstw ochrony poza tymi zapewnianymi przez bezpieczną globalną infrastrukturę AWS. Tamże. p.2

W swoim przewodniku bezpieczeństwa AWS zaleca stosowanie uwierzytelniania AWS jako odpowiedniego dla S3. Tamże. p. 27

Ponadto S3 zapewnia szyfrowanie po stronie serwera lub szyfrowanie po stronie klienta. Szyfrowanie po stronie klienta jest zapewniane w przejrzysty sposób przez AWS Java SDK; klucze nie muszą być przechowywane w AWS. Tamże. p. 28

Wersje

nazwa wersji opis notatki Data wydania
Amazon S3 13.12.2016 Dodaje region londyński notatki 13.12.2016

Instalacja interfejsu AWS CLI w celu uzyskania dostępu do S3

Instalowanie aws cli w Instancji Ubuntu / Debian

sudo apt-get install -y python-dev python-pip
sudo pip install awscli
aws --version
aws configure

Instalowanie aws cli przy użyciu Pythona

Za pomocą pip możesz zainstalować aws cli w Windows, OS X i Linux

sudo pip install awscli

Konfigurowanie interfejsu wiersza polecenia AWS

W tej sekcji wyjaśniono, jak skonfigurować ustawienia używane przez interfejs wiersza polecenia AWS podczas interakcji z AWS, takie jak poświadczenia bezpieczeństwa i region domyślny.

$ 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

Uzyskaj klucz dostępu i klucz tajny ze strony konta w AWS

Tworzenie wiader

Użyj polecenia aws s3 mb, aby utworzyć nowy segment. Nazwy segmentów muszą być unikalne i powinny być zgodne z systemem DNS. Nazwy segmentów mogą zawierać małe litery, cyfry, łączniki i kropki

aws s3 mb s3://bucket-name

Usuwanie wiader

Aby usunąć segment, użyj komendy aws s3 rb. Domyślnie segment powinien być pusty.

aws s3 rb s3://bucket-name

Aby usunąć niepuste wiadro, musisz dołączyć opcję --force.

aws s3 rb s3://bucket-name --force

Wiadra aukcyjne

Aby wyświetlić listę wszystkich segmentów lub ich zawartości, użyj polecenia aws s3 ls

aws s3 ls
aws s3 ls s3://bucket-name

Następujące polecenie wyświetla listę obiektów w wiadro-nazwa / ścieżka

aws s3 ls s3://bucket-name/path

Synchronizuj pliki między lokalnym systemem plików a S3

aws s3 sync . s3://my-bucket/path 

Prześle wszystkie pliki z bieżącego katalogu do S3. Aby pobrać pliki z S3 do bieżącego katalogu, uruchom

aws s3 sync s3://my-bucket/path .

Lista poleceń AWS CLI S3

Lista często używanych poleceń S3 AWS CLI

Utwórz wiadro

aws s3 mb s3://bucket-name

Usuń wiadro

aws s3 rb s3://bucket-name

Lista wiader

aws s3 ls

Wyświetl zawartość w wiadrze

aws s3 ls s3://bucket-name

Lista Wiadro ze ścieżką

aws s3 ls s3://bucket-name/path

Skopiować plik

aws s3 cp file.txt s3://my-bucket/ 

Synchronizuj pliki

aws s3 sync . s3://my-bucket/path

Usuń plik lokalny

rm ./MyFile1.txt

Próba synchronizacji bez opcji --delete - nic się nie dzieje

aws s3 sync . s3://my-bucket/path

Synchronizuj z usuwaniem - obiekt jest usuwany z wiadra

aws s3 sync . s3://my-bucket/path --delete

Usuń obiekt z wiadra

aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt

Synchronizuj z usuwaniem - plik lokalny jest usuwany

aws s3 sync s3://my-bucket/path . --delete

Synchronizuj z klasą pamięci o rzadkim dostępie

aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA

Skopiuj MyFile.txt z bieżącego katalogu do s3: // my-bucket / path

aws s3 cp MyFile.txt s3://my-bucket/path/

Przenieś wszystkie pliki .jpg z s3: // my-bucket / path do ./MyDirectory

aws s3 mv s3://my-bucket/path ./MyDirectory --exclude '*' --include '*.jpg' --recursive

Wyświetl zawartość mojego wiadra

aws s3 ls s3://my-bucket

Wyświetl zawartość ścieżki w moim wiadrze

aws s3 ls s3://my-bucket/path

Usuń s3: //my-bucket/path/MyFile.txt

aws s3 rm s3://my-bucket/path/MyFile.txt

Usuń s3: // my-bucket / path i całą jego zawartość

aws s3 rm s3://my-bucket/path --recursive

Przykład Hello World przy użyciu Java

W tym przykładzie podjęto próbę utworzenia segmentu o nazwie „hello-world”, a ponieważ element hello-world został już utworzony przez kogoś innego w globalnej przestrzeni nazw S3, zgłasza następujący wyjątek. Zmień „hello-world” na coś innego, aby uniknąć wyjątku, tworząc unikatowy wiadro. Tak utworzony nowy segment można usunąć za pomocą konsoli AWS

Wyjątek w wątku „main” com.amazonaws.services.s3.model.AmazonS3 Wyjątek: Żądana nazwa segmentu nie jest dostępna. Przestrzeń nazw segmentu jest wspólna dla wszystkich użytkowników systemu. Wybierz inną nazwę i spróbuj ponownie. (Usługa: Amazon S3; Kod statusu: 409; Kod błędu: BucketAlreadyExists; Identyfikator żądania: ...

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

Ten przykład wymaga następujących zależności:

Witaj świecie za pomocą programu PowerShell

Ten przykład oczekuje błędu, ponieważ wiadro hello-world już istnieje, a S3 używa globalnej przestrzeni nazw.

    New-S3Bucket -BucketName "hello-world"

New-S3Bucket: Żądana nazwa segmentu jest niedostępna. Przestrzeń nazw segmentu jest wspólna dla wszystkich użytkowników systemu. Wybierz inną nazwę i spróbuj ponownie.

Jeśli zastąpisz hello-world czymś innym, co jest unikalne, segment zostanie utworzony bez błędów i uzyskasz następujący wynik:

    CreationDate                                      BucketName
    ------------                                      ----------
    3/30/2017 11:43:03 PM                             hello-world-832jklsdJF

Ten przykład wymaga następujących zależności:



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow