Hvordan bruke AWS CLI for å administrere AWS S3 -bøtter

Hvordan bruke AWS CLI for å administrere AWS S3 -bøtter
“AWS CLI kan brukes til å utføre forskjellige S3-bøtter så vel som objektnivåoperasjoner. Å bruke AWS CLI for å utføre forskjellige operasjoner på S3 -bøtter er en rask måte å kontrollere AWS S3 -tjenesten. Enkle S3 -operasjoner som å lage, slette og sette inn dataene i S3 -bøtta kan automatiseres ved å bruke AWS -kommandolinjefunksjonen. Vi kan skrive forskjellige skript for å utføre forskjellige operasjoner på S3. Det er viktig å bruke AWS -kommandolinjegrensesnittet når du vil sette inn eller slette data til S3 via noen skript. Før du bruker AWS -kommandolinjegrensesnittet, bør du ha en grunnleggende forståelse av de forskjellige kommandoene som brukes til å administrere S3 -bøtta.”

I denne bloggen vil vi diskutere noen grunnleggende kommandoer som brukes til å administrere S3 -bøttene ved å bruke kommandolinjegrensesnittet. I denne artikkelen vil vi diskutere følgende operasjoner som kan utføres på S3.

  • Opprette en S3 -bøtte
  • Sette inn data i S3 -bøtta
  • Slette data fra S3 -bøtta
  • Slette en S3 -bøtte
  • Bøtteversjonering
  • Standard kryptering
  • S3 Bucket Policy
  • Servertilgangslogging
  • Hendelsesvarsling
  • Livssyklusregler
  • Replikasjonsregler

Før du starter denne bloggen, må du først konfigurere AWS -legitimasjon for å bruke kommandolinjegrensesnittet på systemet ditt. Besøk følgende blogg for å lære mer om konfigurering av AWS -kommandolinjeopplysning på systemet ditt.

https: // linuxhint.com/configure-aws-cli-credentials/

Opprette en S3 -bøtte

Det første trinnet for å administrere S3 Bucket Operations ved hjelp av AWS -kommandolinjegrensesnittet er å lage S3 -bøtta. Du kan bruke MB metode for S3 kommando for å opprette S3 -bøtta på AWS. Følgende er syntaksen for å bruke MB Metode av S3 For å lage S3 -bøtta ved hjelp av AWS CLI.

ubuntu@ubuntu: ~ $ aws s3 mb

Bøttenavnet er universelt unikt, så før du oppretter en S3 -bøtte, må du sørge for at den ikke allerede er tatt av noen annen AWS -konto. Følgende kommando vil opprette S3 -bøtta som er navngitt Linuxhint-Demo-S3-Bucket.

ubuntu@ubuntu: ~ $ aws s3 mb \
S3: // Linuxhint-Demo-S3-Bucket \
--Region US-West-2

Kommandoen ovenfor vil opprette en S3-bøtte i USA-West-2-regionen.

Etter å ha opprettet S3 -bøtta, bruk nå ls metode for S3 For å sikre om bøtta er opprettet eller ikke.

ubuntu@ubuntu: ~ $ aws s3 ls

Du vil få følgende feil på terminalen hvis du prøver å bruke et bøtte -navn som allerede eksisterer.

Sette inn data i S3 -bøtta

Etter å ha opprettet S3 -bøtta, er det nå på tide å legge noen data i S3 -bøtta. For å flytte data inn i S3 -bøtta, er følgende kommandoer tilgjengelige.

  • CP
  • mv
  • synkronisering

De CP Kommando brukes til å kopiere dataene fra det lokale systemet til S3 -bøtta og omvendt ved hjelp av AWS CLI. Den kan også brukes til å kopiere dataene fra en kilde S3 -bøtte til en annen destinasjon S3 -bøtte. Syntaksen for å kopiere dataene til og fra S3 -bøtta er som nedenfor.

ubuntu@ubuntu: ~ $ aws s3 cp \
(Kopier fra lokal til S3) ubuntu@ubuntu: ~ $ aws s3 cp \
(Kopier fra S3 til lokal) ubuntu@ubuntu: ~ $ aws s3 cp \
(Kopier fra en S3 til en annen)

De mv metode for S3 brukes til å flytte dataene fra det lokale systemet til S3 -bøtta eller omvendt ved hjelp av AWS CLI. Akkurat som CP Kommando, vi kan bruke mv Kommando for å flytte data fra en S3 -bøtte til en annen S3 -bøtte. Følgende er syntaksen for å bruke mv Kommando med AWS CLI.

ubuntu@ubuntu: ~ $ aws s3 mv \
(Gå fra lokal til S3) ubuntu@ubuntu: ~ $ aws s3 mv \
(Flytt fra S3 til lokal) ubuntu@ubuntu: ~ $ aws s3 mv \
(Flytt fra en S3 til en annen S3)

De synkronisering Kommando i AWS S3 -kommandolinjegrensesnittet brukes til å synkronisere en lokal katalog og S3 -bøtte eller to S3 -bøtter. De synkronisering Kommando sjekker først destinasjonen og kopierer bare filene som ikke eksisterer på destinasjonen. i motsetning til synkronisering Kommando, The CP og mv Kommandoer flytter dataene fra kilde til destinasjon, selv om filen med samme navn allerede eksisterer på destinasjonen.

ubuntu@ubuntu: ~ $ aws s3 sync \
(Synkroniserer lokal katalog til S3)

Kommandoen ovenfor vil synkronisere alle dataene fra den lokale katalogen til S3 -bøtta og vil bare kopiere filene som ikke er til stede i destinasjonen S3 -bøtta.

Nå vil vi synkronisere S3 -bøtta med den lokale katalogen ved å bruke synkronisering Kommando med AWS -kommandolinjegrensesnittet.

ubuntu@ubuntu: ~ $ aws s3 sync \
(Synkroniser S3 til lokal katalog)

Kommandoen ovenfor vil synkronisere alle dataene fra S3 -bøtta til den lokale katalogen og vil bare kopiere filene som ikke eksisterer i destinasjonen, da vi allerede har synkronisert S3 -bøtta og den lokale katalogen, så ingen data ble kopiert denne gangen.

Slette data fra S3 -bøtta

I forrige seksjon diskuterte vi forskjellige metoder for å sette inn dataene i AWS S3 -bøtta ved hjelp av CP, mv, og synkronisering kommandoer. Nå i denne delen vil vi diskutere forskjellige metoder og parametere for å slette dataene fra S3 -bøtta ved hjelp av AWS CLI.

For å slette en fil fra en S3 -bøtte, rm Kommando brukes. Følgende er syntaksen for å bruke rm Kommando for å fjerne S3 -objektet (en fil) ved hjelp av AWS -kommandolinjegrensesnittet.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-Demo-S3-Bucket/Data-Copy.tekst

Kjører kommandoen ovenfor vil bare slette en enkelt fil i S3 -bøtta. For å slette en komplett mappe som inneholder flere filer, er -tilbakevendende Alternativet brukes med denne kommandoen.

For å slette en mappe som er navngitt filer som inneholder flere filer inne i, kan følgende kommando brukes.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-Demo-S3-Bucket/Files \
--tilbakevendende

Kommandoen ovenfor vil først fjerne alle filene fra alle mappene i S3 -bøtta og deretter fjerne mappene. Tilsvarende kan vi bruke -tilbakevendende alternativ sammen med S3 RM metode for å tømme en hel S3 -bøtte.

ubuntu@ubuntu: ~ $ aws s3 rm \
S3: // Linuxhint-Demo-S3-Bucket \
--tilbakevendende

Slette en S3 -bøtte

I denne delen av artikkelen vil vi diskutere hvordan vi kan slette en S3 -bøtte på AWS ved å bruke kommandolinjegrensesnittet. De RB Funksjon brukes til å slette S3 -bøtta, som godtar S3 -bøtte -navnet som en parameter. Før du fjerner S3 -bøtta, bør du først tømme S3 -bøtta ved å fjerne alle dataene ved å bruke rm metode. Når du sletter en S3 -bøtte, er bøttaavnet tilgjengelig for andre.

Før du sletter bøtta, kan du tømme S3 -bøtta ved å fjerne alle dataene ved å bruke rm metode for S3.

ubuntu@ubuntu: ~ $ aws s3 rm \
\
--tilbakevendende

Etter å ha tømt S3 -bøtta, kan du bruke RB metode for S3 Kommando for å slette S3 -bøtta.

ubuntu@ubuntu: ~ $ aws s3 rb \

Bøtteversjonering

For å holde flere varianter av et S3 -objekt i S3, kan S3 -bøtteversjonen aktiveres. Når bøtteversjonering er aktivert, kan du følge med på endringer du har gjort til et S3 -bøtteobjekt. I denne delen vil vi bruke AWS CLI til å konfigurere S3 -bøtteversjonen.

Først må du sjekke bøtteversjonsstatusen til S3 -bøtta med følgende kommando.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-versjonering \
--bøtte

Ettersom bøtteversjonen ikke er aktivert, genererte ikke ovennevnte kommando noen utdata.

Etter å ha sjekket S3 Bucket Versioning Status, må du nå aktivere bøtteversjonen ved å bruke følgende kommando i terminalen. Før du aktiverer versjonering, må du huske at versjonen ikke kan deaktiveres etter å ha aktivert den, men du kan suspendere den.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-versjonering \
--bøtte \
--versjoneringskonfigurasjonsstatus = aktivert

Denne kommandoen vil ikke generere noen utdata og vil aktivere S3 Bucket -versjonen.

Nå igjen, sjekk statusen til S3 -bøtteversjonen av S3 -bøtta med følgende kommando.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-versjonering \
--bøtte

Hvis bøtteversjonen er aktivert, kan den suspenderes ved hjelp av følgende kommando i terminalen.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-versjonering \
--bøtte \
--Versjoneringskonfigurasjonsstatus = suspendert

Etter å ha suspendert S3 Bucket -versjonen, kan følgende kommando brukes til å sjekke statusen til bøtteversjonen igjen.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-versjonering \
--bøtte

Standard kryptering

For å sikre at hvert objekt i S3 -bøtta er kryptert, kan standardkrypteringen aktiveres i S3. Etter å ha aktivert standardkrypteringen, vil den automatisk bli kryptert når du legger et objekt i bøtta. I denne delen av bloggen vil vi bruke AWS CLI til å konfigurere standardkrypteringen på en S3 -bøtte.

Først må du sjekke statusen til standardkryptering av S3 -bøtta ved å bruke Get-Bucket-Cryption metode for S3API. Hvis bøtta standardkryptering ikke er aktivert, vil den kaste ServersideencryptionConfigurationnotfoundError unntak.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-kryptering \
--bøtte

Nå for å aktivere standardkryptering, Put-bucket-kryptering Metoden vil bli brukt.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-kryptering \
--bøtte \

-Server-side-krypteringskonfigurasjon '“Regler”: [“ApplyServerSideEnCryptionByDefault”: “Ssealgoritm”: “AES256”]'

Kommandoen ovenfor vil aktivere standardkrypteringen, og hvert objekt vil bli kryptert ved hjelp av AES-256-kryptering av serversiden når du blir satt i S3-bøtta.

Etter å ha aktivert standardkryptering, sjekk nå statusen til standardkrypteringen ved å bruke følgende kommando.

Hvis standardkrypteringen er aktivert, kan du deaktivere standardkrypteringen ved å bruke følgende kommando i terminalen.

ubuntu@ubuntu: ~ $ aws s3api slett-bucket-kryptering \
--bøtte

Nå, hvis du sjekker standardkrypteringsstatusen igjen, vil den kaste ServersideencryptionConfigurationnotfoundError unntak.

S3 Bucket Policy

S3 Bucket Policy brukes til å tillate andre AWS -tjenester innen eller på tvers av kontoene for å få tilgang til S3 -bøtta. Det brukes til å administrere tillatelsen fra S3 -bøtta. I denne delen av bloggen vil vi bruke AWS CLI til å konfigurere S3 Bucket -tillatelsene ved å bruke S3 Bucket Policy.

Først må du sjekke S3 Bucket Policy for å se om den eksisterer eller ikke på noen spesifikk S3 -bøtte ved å bruke følgende kommando i terminalen.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-policy \
--bøtte

Hvis S3 -bøtta ikke har noen bøttepolitikk tilknyttet bøtta, vil den kaste feilen ovenfor på terminalen.

Nå skal vi konfigurere S3 Bucket Policy til den eksisterende S3 -bøtta. For dette må vi først opprette en fil som inneholder policyen i JSON -format. Lag en fil som heter Politikk.JSON og lim inn følgende innhold der inne. Endre policyen og legg S3 -bøtte -navnet ditt før du bruker den.


"Uttalelse": [

"Effekt": "fornekter",
"Rektor": "*",
"Handling": "S3: getObject",
"Ressurs": "Arn: AWS: S3 ::: MyS3Bucket/*"

]

Nå utfør følgende kommando i terminalen for å anvende denne policyen på S3 -bøtta.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-policy \
--bøtte \
--policyfil: // policy.JSON

Etter å ha brukt policyen, må du nå sjekke statusen til bøttepolitikken ved å utføre følgende kommando i terminalen.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-policy \
--bøtte

For å slette S3 -bøttepolitikken som er knyttet til S3 -bøtta, kan følgende kommando utføres i terminalen.

ubuntu@ubuntu: ~ $ aws s3api slett-bucket-policy \
--bøtte

Servertilgangslogging

For å logge alle forespørslene som er fremsatt til en S3 -bøtte til en annen S3 -bøtte, må servertilgangsloggingen være aktivert for en S3 -bøtte. I denne delen av bloggen vil vi diskutere hvordan vi kan konfigurere servertilgangsloggen på og S3 -bøtta ved hjelp av AWS -kommandolinjegrensesnittet.

Først må du få gjeldende status for servertilgangsloggingen for en S3 -bøtte ved å bruke følgende kommando i terminalen.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-logging \
--bøtte

Når logging av servertilgang ikke er aktivert, vil ikke kommandoen ovenfor kaste noen utdata i terminalen.

Etter å ha sjekket statusen til loggingen, prøver vi nå å aktivere loggingen på S3 -bøtta for å sette logger i en annen destinasjon S3 -bøtte. Før du aktiverer loggingen, må du sørge for at destinasjonsbøtten har en vedlagt policy som lar kildebøtten legge data i den.

Først må du lage en fil som heter hogst.JSON og lim inn følgende innhold der inne og erstatt Targetbucket med navnet på Target S3 -bøtta.


"Loggingenabled":
"Targetbucket": "Mybucket",
"TargetPrefix": "Logger/"

Bruk nå følgende kommando for å aktivere logging på en S3 -bøtte.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-logging \
--bøtte \
--Bucket-logging-Status-fil: // Logging.JSON

Etter å ha aktivert servertilgangslogging på S3 -bøtta, kan du igjen sjekke statusen til S3 -loggingen ved å bruke følgende kommando.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-logging \
--bøtte

Hendelsesvarsling

AWS S3 gir oss en eiendom for å utløse et varsel når en spesifikk hendelse inntreffer S3. Vi kan bruke S3 -varsler om hendelser for å utløse SNS -emner, en Lambda -funksjon eller en SQS -kø. I denne delen vil vi se hvordan vi kan konfigurere S3 -hendelsesvarsler ved hjelp av AWS -kommandolinjegrensesnittet.

Først av alt, bruk Get-Bucket-Notification-Configuration metode for S3API For å få status for hendelsesvarslingen på en bestemt bøtte.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-notification-configuration \
--bøtte

Hvis S3 -bøtta ikke har noen hendelsesvarsling som er konfigurert, vil den ikke generere noen utdata på terminalen.

For å muliggjøre en begivenhetsvarsel for å utløse SNS -emnet, må du først knytte en policy til SNS -emnet som lar S3 -bøtta utløse den. Etter dette må du opprette en fil som heter melding.JSON, som inkluderer detaljene i SNS -emnet og S3 -arrangementet. Opprett en fil melding.JSON og lim inn følgende innhold der inne.


"Emneconfigurations": [

"Topicarn": "Arn: AWS: SNS: US-West-2: 123456789012: S3-Notification-Topic",
"Arrangementer": [
"S3: ObjectCreated:*"
]

]

I henhold til konfigurasjonen ovenfor, vil den når du legger et nytt objekt i S3 -bøtta, utløse SNS -emnet definert i filen.

Etter å ha opprettet filen, må du nå opprette S3 -arrangementsvarslingen på din spesifikke S3 -bøtte med følgende kommando.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-notification-configuration \
--bøtte \
--varslingskonfigurasjonsfil: // varsel.JSON

Kommandoen ovenfor vil opprette en S3 -hendelsesvarsel med de medfølgende konfigurasjonene i melding.JSON fil.

Etter å ha opprettet S3 Event -varselet, oppgi nå igjen alle hendelsesvarsler ved hjelp av følgende AWS CLI -kommando.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-notification-configuration \
--bøtte

Denne kommandoen vil liste opp ovennevnte hendelsesvarsling i konsollutgangen. Tilsvarende kan du legge til flere hendelsesvarsler i en enkelt S3 -bøtte.

Livssyklusregler

S3 -bøtta gir livssyklusregler for å administrere livssyklusen til gjenstandene som er lagret i S3 -bøtta. Denne funksjonen kan brukes til å spesifisere livssyklusen til de forskjellige versjonene av S3 -objekter. S3 -objektene kan flyttes til forskjellige lagringsklasser eller kan slettes etter en bestemt tidsperiode. I denne delen av bloggen vil vi se hvordan vi kan konfigurere livssyklusreglene ved å bruke kommandolinjegrensesnittet.

Først av alt, få alle S3 Bucket Lifecycle -regler konfigurert i en bøtte ved hjelp av følgende kommando.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-lifecycle \
--bøtte

Hvis livssyklusreglene ikke er konfigurert med S3 -bøtta, vil du få Nosuchlifecycleconfiguration unntak som svar.

La oss nå opprette en livssyklusregelkonfigurasjon ved hjelp av kommandolinjen. De Put-Bucket-Lifecycle Metode kan brukes til å lage livssykluskonfigurasjonsregelen.

Først av alt, lage en regler.JSON fil som inkluderer livssyklusreglene i JSON -format.


"Regler": [

"Id": "Flytt til Glacier etter 1 måneder",
"Prefiks": "Data/",
"Status": "Aktivert",
"Overgang":
"Dager": 30,
"StorageClass": "Glacier"

,

"Utløp":
"Dato": "2025-01-01T00: 00: 00.000z "
,
"Id": "Slett data i 2025."",
"Prefiks": "old-data/",
"Status": "Aktivert"

]

Etter å ha opprettet filen med regler i JSON -format, oppretter du nå livssykluskonfigurasjonsregelen ved å bruke følgende kommando.

ubuntu@ubuntu: ~ $ aws s3api put-bucket-lifecycle \
--bøtte \
--Livssyklus-konfigurasjonsfil: // regler.JSON

Kommandoen ovenfor vil opprette en livssykluskonfigurasjon, og du kan få livssykluskonfigurasjonen ved å bruke Get-Bucket-Lifecycle metode.

ubuntu@ubuntu: ~ $ aws s3api get-bucket-lifecycle \
--bøtte

Kommandoen ovenfor vil liste opp alle konfigurasjonsreglene som er opprettet for livssyklusen. Tilsvarende kan du slette livssykluskonfigurasjonsregelen ved å bruke Slett-bøtte-livssyklus metode.

ubuntu@ubuntu: ~ $ aws s3api slett-bucket-lifecycle \
--bøtte

Kommandoen ovenfor vil slette S3 Bucket Lifecycle -konfigurasjonene.

Replikasjonsregler

Replikasjonsregler i S3 -bøtter brukes til å kopiere spesifikke objekter fra en kilde S3 -bøtte til en destinasjon S3 -bøtte innenfor samme eller forskjellige konto. Du kan også spesifisere destinasjonslagringsklassen og krypteringsalternativet i replikasjonsregelkonfigurasjonen. I dette avsnittet vil vi bruke replikasjonsregelen på en S3 -bøtte ved å bruke kommandolinjegrensesnittet.

Først må du få alle replikasjonsreglene konfigurert på en S3 -bøtte ved å bruke få-bucket-replication metode.

ubuntu@Ubuntu: ~ $ aws s3api get-bucket-replication \
--bøtte

Hvis det ikke er noen replikasjonsregel konfigurert med en S3 -bøtte, vil kommandoen kaste ReplicationConfigurationnotfoundError unntak.

For å lage en ny replikasjonsregel ved hjelp av kommandolinjegrensesnittet, må du først aktivere versjonering på både kilden og destinasjon S3 -bøtta. Aktivering av versjonering har blitt diskutert tidligere i denne bloggen.

Etter å ha aktivert S3 -bøtteversjonen på både kilde- og destinasjonsbøtta, må du nå opprette en Replikering.JSON fil. Denne filen inneholder konfigurasjonen av replikasjonsregler i JSON -format. Bytt ut Iam_role_arn og Destination_bucket_arn I den følgende konfigurasjonen før du oppretter replikasjonsregelen.


"Rolle": "iam_role_arn",
"Regler": [

"Status": "Aktivert",
"Prioritet": 100,
"DeletemarkerReplication": "Status": "Aktivert",
"Filter": "prefiks": "data",
"Mål":
"Bøtte": "destination_bucket_arn"


]

Etter å ha opprettet Replikering.JSON fil, oppretter nå replikasjonsregelen ved å bruke følgende kommando.

ubuntu@Ubuntu: ~ $ aws s3api put-bucket-replication \
--bøtte \
--Replikasjonskonfigurasjonsfil: // replikasjon.JSON

Etter at du har utført kommandoen ovenfor, vil den opprette en replikasjonsregel i kilden S3 -bøtta som automatisk vil kopiere dataene til destinasjon S3 -bøtta som er spesifisert i Replikering.JSON fil.

Tilsvarende kan du slette S3 Bucket Replication -regelen ved å bruke Slett-bøtte-replikasjon Metode i kommandolinjegrensesnittet.

Ubuntu@Ubuntu: ~ $ aws S3api Delete-Bucket-Replication \
--bøtte

Konklusjon

Denne bloggen beskriver hvordan vi kan bruke AWS -kommandolinjegrensesnittet til å utføre BASIC for avanserte operasjoner som å lage og slette en S3 -bøtte, sette inn og slette data fra S3 -bøtta, aktivere standardkryptering, versjonering, servertilgangslogging, hendelsesvarsling, replikasjonsregler , og livssykluskonfigurasjoner. Disse operasjonene kan automatiseres ved å bruke AWS -kommandolinje -grensesnittkommandoer i skriptene dine, og dermed bidra til å automatisere systemet.