Stocare de obiecte S3

Bucketuri compatibile S3 pe stocarea noastră Ceph, facturate orar la cota pe care o setezi. Pagina aceasta acoperă cum creezi unul, cum funcționează cheile și fiecare limită pe care am găsit-o în codul care le aplică.

Ce este

Un bucket este stocare de obiecte care vorbește API-ul S3, servită de Ceph RADOS Gateway. Fiecare bucket primește propria cheie de acces și cheie secretă și o cotă în GB pe care o alegi la creare și o poți modifica ulterior. Îl accesezi cu orice client sau SDK S3, indicându-i endpointul nostru și semnând cu Signature Version 4. Facturarea este orară, din soldul tău preplătit, și se calculează din cota pe care ai setat-o, nu din octeții pe care îi stochezi efectiv.

Cum începi

  1. Creează-ți cont și confirmă-ți adresa de email. Cât timp verificarea emailului este în așteptare, nu poate fi creată nicio resursă cloud, inclusiv bucketuri.
  2. Adaugă fonduri. Crearea este refuzată cu "Fonduri insuficiente" dacă soldul nu acoperă măcar prima oră a bucketului cerut.
  3. Deschide Cloud, apoi Buckets în panou, la /panel/cloud/buckets/, și folosește Add bucket. Alege un nume, o cotă în GB și dacă bucketul este citibil public. Prin API, același apel este POST /api/cloud/buckets/ cu name, quota_gb și public_read; răspunde cu 202 și provizionează în fundal.
  4. Așteaptă ca bucketul să iasă din starea de provizionare. Provizionarea creează bucketul, propriul lui utilizator de stocare și perechea lui de chei și aplică politica de citire publică, dacă ai cerut una.
  5. Citește-ți credențialele. Pe pagina bucketului din panou folosește Reveal credentials sau apelează POST /api/cloud/buckets/{id}/credentials/reveal/. Răspunsul conține numele bucketului, endpointul, regiunea, cheia de acces și cheia secretă și este trimis cu Cache-Control: no-store, ca să nu fie păstrat în cache nicăieri.
  6. Configurează clientul tău S3 către https://s3.pidginhost.cloud, cu regiunea us-east-1 și perechea de chei pe care tocmai ai citit-o. Funcționează orice vorbește S3: AWS CLI, boto3, rclone, s3cmd.
  7. Vezi ce ai cu GET /api/cloud/buckets/ sau din lista de bucketuri din panou.

Numele pe care îl scrii nu este numele final al bucketului. I se adaugă în față id-ul contului tău, deci un bucket pe care îl numești photos este creat ca c42-photos dacă id-ul contului tău este 42. Numele cu prefix este cel pe care trebuie să îl folosească clientul tău S3 și cel pe care îl întoarce apelul de reveal.

Limite

Se aplică pe cont, dacă rândul nu spune altceva. Acolo unde o valoare este o setare la nivel de platformă, nu o cotă pe cont, ultima coloană o spune, pentru că nu există nimic pe care suportul să îl ridice doar pentru tine.

Limită Valoare Poate suportul să o ridice?
Bucketuri per cont 5 Da, la cerere
Date stocate per cont Niciun plafon separat pe totalul de octeți. Plafonul tău este limita de bucketuri de mai sus înmulțită cu cota fiecărui bucket Da, indirect: suportul ridică limita de bucketuri, tu redimensionezi bucketurile
Dimensiunea unui bucket Cota pe care o alegi, în intervalul și pasul oferite de formularul de creare O modifici singur, din panou sau cu POST /api/cloud/buckets/{id}/resize/
Micșorarea unui bucket sub ce stochează deja Refuzată Nu, șterge întâi obiecte
Reguli pentru numele bucketului Între 3 și 63 de caractere, inclusiv prefixul contului, doar litere mici, cifre și cratime, primul și ultimul caracter literă sau cifră, fără puncte Nu, numele trebuie să rămână valid pentru stratul de stocare
Afișări de credențiale prin API 10 pe oră Nu, este o setare la nivel de platformă
Rotiri de credențiale prin API 5 pe oră Nu, este o setare la nivel de platformă
URL-uri pre-semnate generate din panou 60 pe oră per utilizator Nu, este o setare la nivel de platformă
Durata de viață a unui URL pre-semnat Între 60 de secunde și 7 zile Nu, este fixă în panou
Încărcare de fișiere din browserul de fișiere al panoului 100 MB per fișier Nu, folosește un client S3 pentru obiecte mai mari, care nu este supus acestui plafon
Obiecte șterse într-o singură cerere din panou 1000 de obiecte Nu, șterge în loturi
Reguli CORS per bucket 100 de reguli Nu
Reguli de ciclu de viață per bucket 1000 de reguli Nu

Chei și credențiale

  • O singură pereche cheie de acces și cheie secretă este creată per bucket, la provizionare, de stratul de stocare. Nu le alegi tu niciodată.
  • Cheia secretă este stocată criptat și este afișată doar când o ceri, prin Reveal credentials din panou sau POST /api/cloud/buckets/{id}/credentials/reveal/.
  • Rotirea înlocuiește perechea. Folosește Rotate credentials din panou sau POST /api/cloud/buckets/{id}/credentials/rotate/. Perechea nouă este salvată prima, apoi cheia de acces veche este ștearsă la stratul de stocare, deci orice mai folosește cheia veche nu mai funcționează. Actualizează-ți clienții înainte să rotești.
  • Fiecare afișare, fiecare rotire și fiecare URL pre-semnat sunt înregistrate cu utilizatorul, administratorul care a impersonat, dacă a fost cazul, adresa IP, user agentul browserului și prefixul tokenului de API. Ultimele câteva intrări sunt afișate pe pagina bucketului.

Ce face panoul și nu face API-ul

API-ul REST acoperă listarea, crearea, citirea, redimensionarea, vizibilitatea de citire publică, afișarea și rotirea credențialelor și anularea unui bucket. Restul se face doar din panou, pe pagina bucketului:

  • Activarea și dezactivarea versionării obiectelor.
  • Editarea regulilor CORS și a regulilor de ciclu de viață.
  • Navigarea, încărcarea și ștergerea obiectelor.
  • Generarea unui URL pre-semnat pentru un singur obiect.

Tot ce este în lista aceea este disponibil și direct prin API-ul S3 al bucketului, cu propria ta pereche de chei și propriul tău client. Panoul este o comoditate, nu singura cale de acces.

Ce se întâmplă dacă rămâi fără fonduri

  • Resursele cloud sunt suspendate la 2 zile după ce soldul devine negativ. Pentru un bucket, suspendarea dezactivează utilizatorul lui de stocare și elimină politica de citire publică, deci cheile nu mai funcționează, iar obiectele publice nu mai sunt servite. Datele rămân.
  • Sunt distruse la 7 zile după acel moment, dacă soldul nu a fost alimentat. Pentru un bucket, asta șterge bucketul și tot ce conține.
  • Un ultim e-mail de avertizare pleacă cu 2 zile înainte ca ceva să fie distrus.
  • Alimentarea soldului repune serviciul în funcțiune, reactivează utilizatorul de stocare și pune la loc politica de citire publică, dacă bucketul avea una.
  • Distrugerea nu se poate recupera. Nu avem la noi nicio copie de siguranță a unui bucket distrus.

Ce necesită suport

  • Creșterea numărului de bucketuri pe care le poate avea contul tău. Limita din tabelul de mai sus este o setare per cont și o modificăm la cerere.
  • Oferirea unei cote în afara intervalului afișat de formularul de creare. Minimul, maximul și pasul vin din catalogul de produse, iar atât panoul, cât și API-ul refuză orice iese din ele.
  • Orice ține de un bucket care a fost distrus. Bucketul, cheile și obiectele lui nu mai există și nu le putem aduce înapoi, de aceea contează emailul de avertizare.
  • Recuperarea unei perechi de chei de la care ai rotit. Cheia de acces anterioară este ștearsă la stratul de stocare și nu poate fi restaurată; rotește din nou și actualizează-ți clienții.
  • Nu ai nevoie de suport pentru limitele de rată la afișări, rotiri și URL-uri pre-semnate. Sunt setări la nivel de platformă, nu cote pe cont, deci nu există niciun comutator per cont.

Unde mergi mai departe

A rămas ceva neclar?

Dacă o limită de pe această pagină te-a luat prin surprindere, spune-ne. Este o eroare de documentație și o corectăm.