# DO - Spaces

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

## Basiese Inligting

DigitalOcean Spaces is **objek stoor dienste**. Hulle laat gebruikers toe om **groot hoeveelhede data** te **stoor en te bedien**, soos prente en ander lêers, op 'n skaalbare en kostedoeltreffende manier. Spaces kan toegang verkry word via die DigitalOcean beheerpaneel, of deur die DigitalOcean API, en is geïntegreer met ander DigitalOcean dienste soos Droplets (virtuele privaat bedieners) en Laaibalansers.

### Toegang

Spaces kan **publiek** wees (enigeen kan hulle vanaf die Internet toegang) of **privaat** (slegs gemagtigde gebruikers). Om toegang te verkry tot die lêers van 'n private ruimte buite die Beheerpaneel, moet ons 'n **toegang sleutel** en **geheime** genereer. Dit is 'n paar van ewekansige tokens wat dien as 'n **gebruikersnaam** en **wagwoord** om toegang tot jou Space te verleen.

'n **URL van 'n ruimte** lyk soos volg: **`https://uniqbucketname.fra1.digitaloceanspaces.com/`**\
Let op die **streek** as **subdomein**.

Selfs al is die **ruimte** **publiek**, kan **lêers** **binne** dit **privaat** wees (jy sal slegs met geloofsbriewe toegang kan verkry).

Egter, **selfs** al is die lêer **privaat**, is dit moontlik om 'n lêer vanaf die konsole te deel met 'n skakel soos `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` vir 'n tydperk:

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

### Enumerasie
```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}}
