推介码

DigitalOcean Referral Badge

点击上方图标使用推介码注册,可以享受200美金的试用额度!(60天~)

什么是Spaces?

根据官方的解释:

Spaces Object Storage is an S3-compatible service for storing and serving large amounts of data. The built-in Spaces CDN minimizes page load times, improves performance, and reduces bandwidth and infrastructure costs.

Spaces 对象存储是一项兼容 S3 的服务,用于存储和提供海量数据。内置的 Spaces CDN 可最大限度地缩短页面加载时间,提升性能,并降低带宽和基础设施成本。

注册并确认账户

在使用上方推介码完成注册后并绑定支付宝或支付方式之后之后,请检查账户Billing是否有额度。
Billing页面

如上图所示,如果你是学生并完成了GitHub学生认证,可以前往 https://www.digitalocean.com/github-students 领取一年的200美金额度。

Billing 链接: https://cloud.digitalocean.com/account/billing

开始订阅OSS

Spaces 采用订阅制度,一个月仅需5美金(优先从Credits扣款),套餐包含250G存储和1000G流量。
访问 https://cloud.digitalocean.com/spaces 开始创建。
进入页面后,点击Create a Spaces Bucket
创建Spaces
建议选择Standard Storage,赠送CloudFlare CDN Business。速度如下:
itdog 测速
在最下面可以自定义桶名完成创建!

点击Subscribe & Create Bucket

使用OSS

创建完 Spaces 后,即可开始上传和管理文件。


获取 Access Key

访问:

https://cloud.digitalocean.com/spaces/access_keys

点击 Generate New Key

创建后会得到:

Access Key
Secret Key

Secret Key 只显示一次,请妥善保存。

使用 AWS CLI

Spaces 兼容 S3,可以直接使用 AWS CLI 管理。

安装 AWS CLI

# Ubuntu / Debian
apt install awscli -y

# macOS
brew install awscli

配置 AWS CLI

aws configure

填写:

AWS Access Key ID: 你的AccessKey
AWS Secret Access Key: 你的SecretKey
Default region name: 
Default output format:

连接 Spaces

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3 ls s3://你的桶名

上传文件

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3 cp test.zip s3://你的桶名/test.zip

上传目录

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3 cp ./files s3://你的桶名/files/ --recursive

上传并设为公开

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3 cp ./files s3://你的桶名/files/ --recursive --acl public-read

批量修改权限

设为公开

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3 cp s3://你的桶名 s3://你的桶名 --recursive --acl public-read

设为私有

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3 cp s3://你的桶名 s3://你的桶名 --recursive --acl private

设置公开访问(Bucket Policy)

创建 public.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicRead",
      "Effect": "Allow",
      "Principal": "*",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::你的桶名/*"]
    }
  ]
}

应用:

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3api put-bucket-policy \
--bucket 你的桶名 \
--policy file://public.json

关闭公开访问

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3api delete-bucket-policy \
--bucket 你的桶名

重置所有文件为私有

aws --endpoint-url https://sfo3.digitaloceanspaces.com \
s3 cp s3://你的桶名 s3://你的桶名 --recursive --acl private

ARN 说明

arn:aws:s3:::你的桶名/*

表示该桶内所有对象。

结语

DigitalOcean Spaces 本质上就是一个简单好用的 S3 兼容对象存储,配合自带 CDN,可以很轻松地完成文件分发、静态资源托管等需求。整体上手成本不高,适合个人项目或中小规模使用。

在实际使用过程中,重点关注两点即可:

  • 使用 AWS CLI 可以大幅提高效率
  • 权限问题始终围绕 ACL 和 Bucket Policy

当你熟悉这些基础操作后,后续无论是接入 CDN、自定义域名,还是做下载站、资源分发,都可以很顺利地扩展。

到这里,一个基础可用的 OSS 环境就已经搭建完成了。

最后修改:2026 年 03 月 29 日
如果觉得我的文章对你有用,请随意赞赏