HostArena S3 API: adrese, potpisivanje i kompatibilnost
HostArena S3 storage je kompatibilan sa Amazon S3 API standardom, pa ga možete koristiti iz postojećih aplikacija, biblioteka i alata koji podržavaju S3. Ovo uputstvo je namenjeno programerima i administratorima: objašnjava adrese, region, potpisivanje zahteva i podržane operacije.
Šta vam je potrebno
| Podatak | Vrednost / primer | Gde ga nalazite |
|---|---|---|
| Endpoint | https://s3.hostarena.rs | isti za sve korisnike |
| Region | garage | isti za sve korisnike, obavezan |
| Bucket | vas-bucket | HostArena korisnički panel, kod S3 usluge |
| Access Key | VAS_ACCESS_KEY | HostArena korisnički panel, kod S3 usluge |
| Secret Key | VAS_SECRET_KEY | HostArena korisnički panel, kod S3 usluge |
Endpoint i region
Svi korisnici koriste isti endpoint:
https://s3.hostarena.rsRegion je uvek garage. Ovo je obavezno: ako pošaljete zahtev potpisan za us-east-1, server ga odbija sa greškom AuthorizationHeaderMalformed (u poruci piše da očekuje garage).
Potpisivanje zahteva
Koristite standardno potpisivanje AWS Signature Version 4 (SigV4) sa vašim Access Key i Secret Key i regionom garage. Ključeve u aplikaciji čitajte iz promenljivih okruženja ili konfiguracije van koda, nikad ih ne upisujte direktno u izvorni kod.
Adrese objekata
Podržana su oba stila adresa. Naziv bucket-a se pojavljuje samo jednom:
- path-style:
https://s3.hostarena.rs/vas-bucket/primer.jpg - virtual-hosted:
https://vas-bucket.s3.hostarena.rs/primer.jpg
Ako vaša biblioteka ima opciju „force path style” ili „use path-style endpoint”, preporučujemo da je uključite, jer je najpouzdanija. Pogrešno je, na primer, https://vas-bucket.s3.hostarena.rs/vas-bucket/primer.jpg: tu je bucket naveden dva puta.
Primer HTTP zahteva
Otpremanje objekta, path-style:
PUT /vas-bucket/primer.txt HTTP/1.1
Host: s3.hostarena.rs
Authorization: AWS4-HMAC-SHA256 Credential=VAS_ACCESS_KEY/20260101/garage/s3/aws4_request, ...
Content-Type: text/plain
Content-Length: 1234Isti zahtev, virtual-hosted:
PUT /primer.txt HTTP/1.1
Host: vas-bucket.s3.hostarena.rs
Authorization: AWS4-HMAC-SHA256 Credential=VAS_ACCESS_KEY/20260101/garage/s3/aws4_request, ...
Content-Type: text/plain
Content-Length: 1234U praksi zahteve ne sastavljate ručno, već preko S3 biblioteke za vaš jezik, koja sama računa potpis. Primere koda imamo za PHP, Python, Node.js i Go.
Podržane operacije
- kreiranje bucket-a*,
- listanje bucket-a i objekata,
- otpremanje, preuzimanje, kopiranje i brisanje objekata,
- Multipart Upload,
- presigned URL,
- metapodaci objekta.
*Prvi bucket je već napravljen pri aktivaciji usluge, pa kreiranje bucket-a u većini slučajeva nije potrebno.
Pažnja: brisanje objekta preko API-ja je trajno. Proverite putanju (ključ objekta) pre nego što pokrenete brisanje, naročito kod skripti koje brišu više objekata odjednom.
Content-Type
Pri otpremanju postavite odgovarajuće zaglavlje Content-Type, da bi pregledač pravilno prikazao fajl, na primer image/jpeg, image/png, application/pdf, text/plain ili application/json.
Javni pristup i presigned URL
Anonimni pristup ne postoji po difoltu. Ako fajlove treba javno prikazati (na primer slike na sajtu), za bucket u HostArena panelu uključite Website hosting. Za privremeni pristup pojedinačnom fajlu koristite presigned URL: privremenu adresu za preuzimanje, otpremanje ili deljenje. Trajanje adrese određuje aplikacija koja je generiše.
Multipart Upload
Za velike fajlove koristite Multipart Upload: fajl se šalje u delovima, prekinut prenos može da se nastavi, a prenos velikih fajlova je pouzdaniji. Većina S3 biblioteka ovo radi automatski.
Najčešći HTTP kodovi
| Kod | Značenje |
|---|---|
| 200 | uspešno izvršeno |
| 204 | objekat obrisan |
| 400 | neispravan zahtev (često pogrešan region) |
| 403 | pristup odbijen ili neispravni pristupni podaci |
| 404 | bucket ili objekat nije pronađen |
| 409 | konflikt zahteva |
| 500 | greška servera |
Najčešći problemi
AuthorizationHeaderMalformed
Region nije garage. Podesite region u klijentu na garage.
SignatureDoesNotMatch
Proverite Secret Key i da klijent koristi Signature Version 4.
InvalidAccessKeyId
Proverite Access Key u HostArena panelu.
NoSuchBucket ili 404
Proverite naziv bucket-a i da adresa ne sadrži bucket dva puta.
Ne može da se poveže
Proverite da koristite https://s3.hostarena.rs i da sistem dozvoljava odlazne veze na port 443.
Zaključak
Ukratko: endpoint https://s3.hostarena.rs, region garage, SigV4 i bucket samo jednom u adresi. Za pomoć otvorite tiket u korisničkom panelu. Pogledajte i Šta je HostArena S3 storage, a ako uslugu još nemate, pakete.
