# DO - Spaces
{{#include ../../../banners/hacktricks-training.md}}
## Información Básica
DigitalOcean Spaces son **servicios de almacenamiento de objetos**. Permiten a los usuarios **almacenar y servir grandes cantidades de datos**, como imágenes y otros archivos, de manera escalable y rentable. Los Spaces se pueden acceder a través del panel de control de DigitalOcean, o utilizando la API de DigitalOcean, y están integrados con otros servicios de DigitalOcean como Droplets (servidores privados virtuales) y Load Balancers.
### Acceso
Los Spaces pueden ser **públicos** (cualquiera puede acceder a ellos desde Internet) o **privados** (solo usuarios autorizados). Para acceder a los archivos de un espacio privado fuera del Panel de Control, necesitamos generar una **clave de acceso** y **secreto**. Estos son un par de tokens aleatorios que sirven como un **nombre de usuario** y **contraseña** para otorgar acceso a tu Space.
Una **URL de un espacio** se ve así: **`https://uniqbucketname.fra1.digitaloceanspaces.com/`**\
Nota la **región** como **subdominio**.
Incluso si el **espacio** es **público**, los **archivos** **dentro** de él pueden ser **privados** (solo podrás acceder a ellos con credenciales).
Sin embargo, **incluso** si el archivo es **privado**, desde la consola es posible compartir un archivo con un enlace como `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` por un período de tiempo:
### Enumeración
```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]:
AWS Secret Access Key [None]:
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}}