# DO - Spaces

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

## 基本情報

DigitalOcean Spacesは**オブジェクトストレージサービス**です。ユーザーは**大量のデータ**（画像やその他のファイルなど）をスケーラブルでコスト効果の高い方法で**保存および提供**することができます。SpacesはDigitalOceanコントロールパネルまたはDigitalOcean APIを介してアクセスでき、Droplets（仮想プライベートサーバー）やLoad Balancersなどの他のDigitalOceanサービスと統合されています。

### アクセス

Spacesは**公開**（誰でもインターネットからアクセス可能）または**非公開**（認可されたユーザーのみ）にすることができます。コントロールパネルの外部からプライベートスペースのファイルにアクセスするには、**アクセスキー**と**シークレット**を生成する必要があります。これらは、スペースへのアクセスを許可するための**ユーザー名**と**パスワード**として機能するランダムなトークンのペアです。

**スペースのURL**は次のようになります: **`https://uniqbucketname.fra1.digitaloceanspaces.com/`**\
**サブドメイン**としての**リージョン**に注意してください。

**スペース**が**公開**であっても、その中の**ファイル**は**非公開**である可能性があります（資格情報がないとアクセスできません）。

ただし、**ファイルが非公開**であっても、コンソールからは次のようなリンクでファイルを共有することが可能です: `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` 一定の期間のために:

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

### 列挙
```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}}
