Ricerca…


Osservazioni

Riepilogo dalla documentazione

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

Amazon Simple Storage Service è lo spazio di archiviazione per Internet. È progettato per rendere il calcolo su scala Web più semplice per gli sviluppatori.

Amazon S3 dispone di una semplice interfaccia di servizi Web che è possibile utilizzare per archiviare e recuperare qualsiasi quantità di dati, in qualsiasi momento, da qualsiasi posizione sul Web. Offre a qualsiasi sviluppatore l'accesso alla stessa infrastruttura di archiviazione di dati altamente scalabile, affidabile, veloce e poco costosa che Amazon utilizza per gestire la propria rete globale di siti Web. Il servizio mira a massimizzare i benefici di scala e a trasferire tali benefici agli sviluppatori.

Supporto linguistico e di scripting

S3 non è un linguaggio di sviluppo in quanto tale, ma una piattaforma cloud che supporta le richieste di servizi Web. Esiste un assortimento di strumenti e SDK pubblicati da Amazon. Gli SDK della lingua forniscono un accesso trasparente a S3 gestendo attività quali richieste di servizi Web, autenticazione, gestione delle sessioni, rinnovo dei token, ecc. Esistono anche interfacce della riga di comando per bash / windows / ios e powershell .

L'API S3

L'API dei servizi Web S3 è stata supportata da fornitori concorrenti . Questo argomento al momento non copre direttamente l'API, quindi gli esempi qui riportati non sarebbero utili per la creazione di applicazioni che si collegano a sistemi concorrenti che sfruttano l'API S3.

versioni

A partire dal 28 marzo 2017, la CLI di AWS ha 174 versioni, che sono chiaramente documentate nelle Note di rilascio della CLI . Amazon S3 ha 66 versioni, alcune delle quali annunciano l'aggiunta di una nuova regione e altre aggiungono funzionalità. Questi sono documentati nelle note di rilascio S3 .

Gli esempi

Rispetto agli esempi mostrati finora in questa sezione "Guida introduttiva", Amazon S3 è utile per gli sviluppatori per i seguenti casi d'uso:

  • Archiviare o eseguire il backup di file in un sistema durevole e ad alte prestazioni, quindi scaricare questa attività da architetture non cloud: i file system Linux e Windows. È costoso ricreare la durabilità e i livelli di prestazioni di S3 utilizzando server locali o istanze EC2.
  • Quando la larghezza di banda della rete è un problema, ad esempio, nei casi in cui più utenti simultanei devono scaricare file di grandi dimensioni, lo spostamento dei dati su S3 può essere utilizzato come un modo per ridurre la carenza di larghezza di banda in un datacenter o in un server locale . Questo è un modo di distribuire un repository di codice di grandi dimensioni, immagini di macchine virtuali, video o programmi di installazione del software. È possibile migliorare i tempi di caricamento degli utenti e i tempi di download degli utenti. [Per prestazioni aggiuntive in scenari di utenti molto grandi, è possibile utilizzare un sistema di distribuzione dei contenuti come cloudfront per memorizzare i file più vicini agli utenti.]
  • L'applicazione deve creare o utilizzare un file di grandi dimensioni e è necessario un modo per consentire agli utenti di accedervi o depositarla.
  • La distribuzione della tua applicazione è molto grande e devi condividerla con gli utenti.
  • Stai mettendo insieme una pipeline di consegna continua e, ad esempio, l'hosting di porzioni del tuo sito web su Amazon S3.

A questo punto, gli esempi non mostrano come eseguire quanto segue:

  • Gli esempi, anche se più veloci e più chiari di digitare aws s3 help, do not mention some of the commands covered in help, such as aws s3 website`.
  • Come condividere o limitare l'accesso degli utenti. Senza restrizioni esplicite, gli esempi funzionerebbero solo per gli utenti che condividono lo stesso account AWS.
  • Come proteggere i dati tramite crittografia. Tieni presente che AWS posiziona S3 con un livello di sicurezza più elevato rispetto ai dati archiviati in EC2. Best practice per la sicurezza di AWS, agosto 2016, p. 27

Sicurezza

AWS consiglia di visualizzare S3 come piattaforma sicura:

A meno che non si abbiano requisiti aziendali o di conformità più rigorosi, non è necessario introdurre livelli di protezione aggiuntivi oltre a quelli forniti dall'infrastruttura globale sicura di AWS. ibid. p.2

Nella loro guida alla sicurezza , AWS consiglia di utilizzare l'autenticazione AWS come adatta per S3. ibid. p. 27

Inoltre, S3 fornisce crittografia lato server o crittografia lato client. La crittografia lato client viene fornita in modo trasparente da AWS Java SDK; le chiavi non devono essere archiviate su AWS. ibid. p. 28

Versioni

nome della versione descrizione gli appunti data di rilascio
Amazon S3 il 12-12-2016 Aggiunge la Regione di Londra gli appunti 2016/12/13

Installazione di AWS CLI per l'accesso a S3

Installare aws cli in Ubuntu / Debian Instance

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

Installare aws cli usando python

Usando pip puoi installare aws cli in windows, OS X e Linux

sudo pip install awscli

Configurazione dell'interfaccia della riga di comando di AWS

Questa sezione spiega come configurare le impostazioni utilizzate dall'interfaccia della riga di comando di AWS quando si interagisce con AWS, come le credenziali di sicurezza e l'area predefinita.

$ 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

Ottieni la chiave di accesso e la chiave segreta dalla pagina dell'account in AWS

Creazione di secchi

Utilizzare il comando aws s3 mb per creare un nuovo bucket. I nomi dei bucket devono essere univoci e devono essere conformi al DNS. I nomi dei bucket possono contenere lettere minuscole, numeri, trattini e punti

aws s3 mb s3://bucket-name

Rimozione dei secchi

Per rimuovere un bucket, utilizzare il comando aws s3 rb. Il bucket predefinito dovrebbe essere vuoto.

aws s3 rb s3://bucket-name

Per rimuovere un bucket non vuoto, è necessario includere l'opzione --force.

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

Elenco dei bucket

Per elencare tutti i bucket o il loro contenuto, utilizzare il comando aws s3 ls

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

Il seguente comando elenca gli oggetti in nome-secchio / percorso

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

Sincronizza i file tra il file system locale e S3

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

Caricherà tutti i file nella directory corrente su S3. Per scaricare i file da S3 alla directory corrente eseguire

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

Lista comandi AWS CLI S3

Elenco dei comandi CLI S3 AWS comunemente utilizzati

Crea un secchio

aws s3 mb s3://bucket-name

Rimuovi il secchio

aws s3 rb s3://bucket-name

Elenco delle benne

aws s3 ls

Elenca i contenuti all'interno del bucket

aws s3 ls s3://bucket-name

List Bucket con un percorso

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

Copia il file

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

Sincronizza i file

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

Elimina il file locale

rm ./MyFile1.txt

Tenta di sincronizzare senza l'opzione --delete - non succede nulla

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

Sincronizzazione con eliminazione: l'oggetto viene eliminato dal bucket

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

Elimina oggetto dal bucket

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

Sincronizzazione con eliminazione: il file locale viene eliminato

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

Sincronizzare con la classe di archiviazione di accesso non frequente

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

Copia MyFile.txt nella directory corrente su s3: // my-bucket / path

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

Sposta tutti i file .jpg in s3: // my-bucket / percorso in ./MyDirectory

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

Elenca il contenuto di my-bucket

aws s3 ls s3://my-bucket

Elenca il contenuto del percorso nel mio bucket

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

Elimina s3: //my-bucket/path/MyFile.txt

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

Elimina s3: // my-bucket / percorso e tutto il suo contenuto

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

Ciao World Example utilizzando Java

Questo esempio tenta di creare un bucket chiamato "hello-world" e, poiché il bucket ciao-mondo è già stato creato da qualcun altro nello spazio dei nomi globale di S3, genera la seguente eccezione. Cambia "ciao-mondo" con qualcos'altro per evitare l'eccezione creando un bucket con un nome univoco. Il nuovo bucket così creato può essere eliminato utilizzando la console AWS

Eccezione nel thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: il nome del bucket richiesto non è disponibile. Lo spazio dei nomi bucket è condiviso da tutti gli utenti del sistema. Si prega di selezionare un nome diverso e riprovare. (Servizio: Amazon S3; Codice di stato: 409; Codice di errore: BucketAlreadyExists; ID richiesta: ...

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

Questo esempio richiede le seguenti dipendenze:

Ciao mondo usando PowerShell

Questo esempio si aspetta un errore, poiché il bucket ciao-mondo esiste già e S3 utilizza uno spazio dei nomi globale.

    New-S3Bucket -BucketName "hello-world"

New-S3Bucket: il nome del bucket richiesto non è disponibile. Lo spazio dei nomi bucket è condiviso da tutti gli utenti del sistema. Si prega di selezionare un nome diverso e riprovare.

Se sostituisci hello-world con qualcos'altro che è unico, il bucket verrà creato senza errori e otterrai il seguente risultato:

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

Questo esempio richiede le seguenti dipendenze:



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow