Sök…


Anmärkningar

Sammanfattning från dokumentationen

Från http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html

Amazon Simple Storage Service lagrar för Internet. Det är utformat för att underlätta databasskalning för utvecklare.

Amazon S3 har ett enkelt webbtjänstgränssnitt som du kan använda för att lagra och hämta vilken mängd data som helst, när som helst, var som helst på webben. Det ger alla utvecklare tillgång till samma mycket skalbara, pålitliga, snabba, billiga datalagringsinfrastruktur som Amazon använder för att driva sitt eget globala nätverk av webbplatser. Tjänsten syftar till att maximera skalfördelarna och överföra dessa fördelar till utvecklarna.

Stöd för språk och skript

S3 är inte ett utvecklingsspråk som sådan, utan en molnplattform som stöder förfrågningar om webbtjänster. Det finns ett sortiment av verktyg och SDK: er som publiceras av Amazon. Språket SDK ger transparent åtkomst till S3 genom att hantera uppgifter som webbtjänstförfrågningar, autentisering, sessionhantering, förnyelse av token, etc. Det finns också kommandoradgränssnitt för bash / windows / ios och powershell .

S3 API

S3-webbtjänstens API har stöttats av konkurrerande leverantörer . Detta ämne täcker för närvarande inte API direkt, så exemplen här skulle inte vara användbara för att bygga applikationer som ansluter till konkurrerande system som utnyttjar S3 API.

versioner

Från och med 28 mars 2017 har AWS CLI 174 versioner, som är dokumenterade i CLI: s utgivningsanmärkningar . Amazon S3 har 66 versioner, av vilka vissa ska tillkännage tillägg av en ny region, och andra ska lägga till funktionalitet. Dessa är dokumenterade i S3-utgåvan .

Exemplen

När det gäller exemplen som hittills visas i detta avsnitt "Komma igång" är Amazon S3 användbar för utvecklare för följande användningsfall:

  • Lagra eller säkerhetskopiera filer i ett högpresterande och hållbart system, och laddar därmed bort denna uppgift från icke-molnarkitekturer: Linux- och Windows-filsystem. Det är dyrt att återskapa hållbarhets- och prestandanivåerna för S3 med hjälp av på premisservrar eller EC2-instanser.
  • När nätverksbandbredd är ett problem, till exempel i fall där flera samtidiga användare måste ladda ner stora filer kan flyttning av data till S3 användas som ett sätt för ett program att minska brist på bandbredd till ett datacenter eller en lokal server . Detta är ett sätt att distribuera ett stort kodförråd, virtuella maskinbilder, video- eller programvaruinstallatörer. Uppladdningstider för användare och nedladdningstider för användare kan förbättras. [För ytterligare prestanda i mycket stora användarbasscenarier, kan ett innehållsleveranssystem som molnfront användas för att cache-filer närmare användarna.]
  • Din applikation måste skapa eller konsumera en stor fil och du behöver ett sätt att låta användare komma åt eller deponera den.
  • Din applikationsdistribution är väldigt stor och du måste dela den med användare.
  • Du sätter ihop en kontinuerlig leveranspipeline och till exempel värdar delar av din webbplats på Amazon S3.

Vid denna punkt visar exemplen inte hur man gör följande:

  • Exemplen, även om snabbare och tydligare än att skriva aws s3 help, do not mention some of the commands covered in help, such as aws s3-webbplats.
  • Hur man delar eller begränsar användaråtkomst. Utan uttrycklig begränsning skulle exemplen fungera endast för användare som delar samma AWS-konto.
  • Hur man säkrar data via kryptering. Observera att AWS placerar S3 som en högre säkerhetsnivå än data lagrade i EC2. AWS Security Best Practices, augusti 2016, sid. 27

säkerhet

AWS rekommenderar att du ser S3 som en säker plattform:

Om du inte har strängare affärs- eller efterlevnadskrav behöver du inte införa ytterligare skyddslager utöver de som AWS säkerställer global infrastruktur. ibid. p.2

I deras säkerhetsguide rekommenderar AWS att använda AWS-autentisering som lämplig för S3. ibid. s. 27

Dessutom tillhandahåller S3 kryptering på serversidan eller kryptering på klientsidan. Kryptering av klientsidan tillhandahålls transparent av AWS Java SDK; tangenter behöver inte lagras på AWS. ibid. s. 28

versioner

versionens namn beskrivning anteckningar Utgivningsdatum
Amazon S3 2016-12-13 Lägger till London-regionen anteckningar 2016/12/13

Installation av AWS CLI för åtkomst till S3

Installera aws cli i Ubuntu / Debian Instance

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

Installera aws cli med python

Med pip kan du installera aws cli i Windows, OS X och Linux

sudo pip install awscli

Konfigurera AWS-kommandoradsgränssnittet

Det här avsnittet förklarar hur du konfigurerar inställningar som AWS-kommandoradsgränssnittet använder när du interagerar med AWS, till exempel dina säkerhetsuppgifter och standardregionen.

$ 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

Hämta åtkomstnyckeln och hemlig nyckel från kontosidan i AWS

Skapa hinkar

Använd kommandot aws s3 mb för att skapa en ny hink. Skopnamn måste vara unika och ska vara DNS-kompatibla. Skopnamn kan innehålla små bokstäver, siffror, bindestreck och perioder

aws s3 mb s3://bucket-name

Ta bort hinkar

För att ta bort en hink använder du kommandot aws s3 rb. Min standardhink ska vara tom.

aws s3 rb s3://bucket-name

För att ta bort en hink som inte är tom, måste du inkludera alternativet - Force.

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

Lista hinkar

Använd kommandot aws s3 ls för att lista alla skopor eller deras innehåll

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

Följande kommando visar objekten i skopnamn / sökväg

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

Synkronisera filer mellan det lokala filsystemet och S3

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

Det kommer att ladda upp alla filer i den aktuella katalogen till S3. För att ladda ner filerna från S3 till den aktuella katalogen kör

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

AWS CLI S3-kommandolista

Lista över vanliga S3 AWS CLI-kommandon

Skapa hink

aws s3 mb s3://bucket-name

Ta bort skopan

aws s3 rb s3://bucket-name

Lista hinkar

aws s3 ls

Lista innehållet i hinken

aws s3 ls s3://bucket-name

Lista hink med en sökväg

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

Kopiera fil

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

Synkronisera filer

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

Radera lokal fil

rm ./MyFile1.txt

Försök synkronisera utan - radera alternativet - ingenting händer

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

Synkronisera med radering - objekt raderas från skopan

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

Ta bort objekt från skopan

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

Synkronisera med radering - lokal fil raderas

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

Synkronisera med lagringsklass för frekvent åtkomst

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

Kopiera MyFile.txt i aktuell katalog till s3: // my-bucket / path

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

Flytta alla .jpg-filer i s3: // my-bucket / path till ./MyDirectory

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

Lista innehållet i min hink

aws s3 ls s3://my-bucket

Lista innehållet i sökvägen i min hink

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

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

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

Radera s3: // my-bucket / path och allt innehåll

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

Hej världsexempel med Java

Detta exempel försöker skapa en hink som heter 'hejvärld' och eftersom hinkvärlden hink redan har skapats av någon annan i S3: s globala namnområde, kastar följande undantag. Ändra "hej-världen" till något annat för att undvika undantaget genom att skapa en unikt namngivande hink. Den nya skopan så skapad kan raderas med hjälp av AWS-konsolen

Undantag i tråd "main" com.amazonaws.services.s3.model.AmazonS3Exception: Det begärda skopnamnet är inte tillgängligt. Skopans namnutrymme delas av alla användare av systemet. Välj ett annat namn och försök igen. (Service: Amazon S3; Statuskod: 409; Felkod: BucketAlreadyExists; Begäran-ID: ...

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

Detta exempel kräver följande beroenden:

Hej värld med PowerShell

Det här exemplet förväntar sig ett fel, eftersom hejvärldsskopan redan finns och S3 använder ett globalt namnutrymme.

    New-S3Bucket -BucketName "hello-world"

New-S3Bucket: Det begärda skopnamnet är inte tillgängligt. Skopans namnutrymme delas av alla användare av systemet. Välj ett annat namn och försök igen.

Om du byter ut hallo-världen mot något annat som är unikt skapas skopan utan fel, och du får följande resultat:

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

Detta exempel kräver följande beroenden:



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow