# DigitalOcean Spaces

> Connect DigitalOcean Spaces to BucketMate with Spaces access keys

Canonical: https://docs.bucketmate.app/macos/providers/connect-digitalocean-spaces

BucketMate connects to DigitalOcean Spaces through the S3-compatible Spaces endpoint for your region.

## Prerequisites

- DigitalOcean account
- Space
- Spaces access key
- Spaces secret key
- Space region

## Endpoint and region

Use the endpoint for your Spaces region:

```text
https://<region>.digitaloceanspaces.com
```

Examples:

| Region | Endpoint |
| --- | --- |
| `nyc3` | `https://nyc3.digitaloceanspaces.com` |
| `sfo3` | `https://sfo3.digitaloceanspaces.com` |
| `ams3` | `https://ams3.digitaloceanspaces.com` |
| `sgp1` | `https://sgp1.digitaloceanspaces.com` |
| `fra1` | `https://fra1.digitaloceanspaces.com` |

## Connection steps

1. Open the DigitalOcean dashboard.
2. Go to API and create or copy Spaces access keys.
3. Open BucketMate.
4. Choose **Add Connection**.
5. Select **DigitalOcean Spaces**.
6. Enter the endpoint for the Space region.
7. Enter the access key and secret key.
8. Select the matching region.
9. Use **Test Connection**.
10. Save the connection.

## Common issues and fixes

### ACL support is limited

Only `private` and `public-read` ACLs are supported. Fix by using those ACLs only.

### Cross-region copy is not supported

Cross-region and cross-cluster CopyObject or UploadPartCopy are not supported. Fix by keeping source and destination in the same region and cluster.

### Management features require the API

Bucket policies, versioning, lifecycle rules, and access logging are available only via the API. Fix by using the Spaces API or an S3-compatible CLI to manage these settings.

### Tag-based lifecycle rules are not supported

Tag-based lifecycle rules are not supported. Fix by using time-based rules only.

### Bucket-level encryption is not supported

Bucket-level encryption is not supported. Fix by using SSE-C or client-side encryption.

### Bucket list permission is restricted

If credentials can access only one Space, turn off **Credentials have permission to list buckets** and enter the Space name manually.

### Public URLs do not work

Copied direct URLs work only when the object is public or available through a configured CDN/custom domain. For private files, create a presigned share link in BucketMate.

## BucketMate tips

- Use custom-domain URL copy when the Space is served through your own domain.
- Keep source and destination in the same region for copy and move workflows.
- Use presigned links for temporary access to private files.
