# DO - Spaces

{{#include ../../../banners/hacktricks-training.md}}

## Osnovne informacije

DigitalOcean Spaces su **usluge skladištenja objekata**. Omogućavaju korisnicima da **čuvaju i pružaju velike količine podataka**, kao što su slike i drugi fajlovi, na skalabilan i ekonomičan način. Spaces se mogu pristupiti putem DigitalOcean kontrolne table, ili koristeći DigitalOcean API, i integrisani su sa drugim DigitalOcean uslugama kao što su Droplets (virtuelni privatni serveri) i Load Balancers.

### Pristup

Spaces mogu biti **javne** (svako može da im pristupi sa Interneta) ili **privatne** (samo ovlašćeni korisnici). Da bismo pristupili fajlovima iz privatnog prostora van Kontrolne table, potrebno je generisati **pristupni ključ** i **tajnu**. Ovo su par nasumičnih tokena koji služe kao **korisničko ime** i **lozinka** za pristup vašem prostoru.

**URL prostora** izgleda ovako: **`https://uniqbucketname.fra1.digitaloceanspaces.com/`**\
Obratite pažnju na **region** kao **poddomen**.

Čak i ako je **prostor** **javan**, **fajlovi** **unutar** njega mogu biti **privatni** (možete im pristupiti samo sa kredencijalima).

Međutim, **čak** i ako je fajl **privatan**, iz konzole je moguće deliti fajl putem linka kao što je `https://fra1.digitaloceanspaces.com/uniqbucketname/filename?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=DO00PL3RA373GBV4TRF7%2F20221213%2Ffra1%2Fs3%2Faws4_request&X-Amz-Date=20221213T121017Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a183dbc42453a8d30d7cd2068b66aeb9ebc066123629d44a8108115def975bc` na određeni vremenski period:

<figure><img src="../../../images/image (277).png" alt=""><figcaption></figcaption></figure>

### Enumeracija
```bash
# Unauthenticated
## Note how the region is specified in the endpoint
aws s3 ls --endpoint=https://fra1.digitaloceanspaces.com --no-sign-request s3://uniqbucketname

# Authenticated
## Configure spaces keys as AWS credentials
aws configure
AWS Access Key ID [None]: <spaces_key>
AWS Secret Access Key [None]: <Secret>
Default region name [None]:
Default output format [None]:

## List all buckets in a region
aws s3 ls --endpoint=https://fra1.digitaloceanspaces.com

## List files inside a bucket
aws s3 ls --endpoint=https://fra1.digitaloceanspaces.com s3://uniqbucketname

## It's also possible to generate authorized access to buckets from the API
```
{{#include ../../../banners/hacktricks-training.md}}
