七彩云对象存储
S3 接入教程 / 7 分钟阅读

S3文件直链怎么生成

一、结论

只要完成存储桶权限配置、目标文件上传两个前置操作,即可根据文件权限类型,通过手动拼接规范路径、控制台一键复制、SDK/CLI生成签名链接三种方式得到可用的S3文件直链,新手使用兼容S3协议的对象存储服务可以大幅降低操作门槛。

二、准备工作

1. 可用的S3兼容对象存储服务账号,可选原生AWS S3、七彩云对象存储等支持S3协议的服务商

2. 账号对应的Access Key ID和Secret Access Key(仅生成私有文件临时直链需要,公共直链无需用到)

3. 新手推荐直接使用服务商网页控制台操作,无需安装额外工具;有批量操作需求的用户可提前安装AWS CLI工具或对应语言的S3 SDK

4. 提前明确直链使用场景:需要长期可用的公共资源选公共读权限,仅临时内部访问的私有资源选私有权限

三、操作步骤

步骤1:配置存储桶权限

1. 登录对应对象存储服务的控制台,找到「存储桶」菜单,点击「创建存储桶」

2. 选择存储桶所属地域,输入全局唯一的存储桶名称,注意名称不能包含特殊字符和大写字母

3. 权限配置环节:如果需要生成长期可用的公共直链,将存储桶访问权限设置为「公共读」;如果仅需要临时访问的私有直链,将权限设置为「私有」

4. (可选,前端调用直链必填)进入存储桶的「CORS配置」页面,添加允许访问的源地址,测试阶段可填写*允许所有来源访问,生产环境替换为自己的业务域名

5. 确认关闭「公共访问阻断」类的默认规则,避免权限配置不生效

步骤2:上传目标文件

1. 进入刚创建的存储桶,点击「上传文件」按钮,选择本地需要生成直链的文件,支持单文件或批量上传

2. 上传配置环节,文件权限默认选择「继承存储桶权限」即可,特殊需求可单独调整单个文件的访问权限

3. 确认文件存储类别为「标准存储」,归档或冷存储类别的文件无法直接通过直链访问,需要先解冻

4. 等待文件上传完成,在存储桶文件列表中可以看到目标文件即代表上传成功

步骤3:生成S3文件直链

根据文件权限类型选择对应的生成方式:

#### 公共读文件直链生成

  • 方式1:控制台一键复制:进入文件详情页,直接点击「复制公共直链」按钮即可拿到完整可用的直链
  • 方式2:手动拼接:按照https://<存储桶名称>.<S3 endpoint>/<文件路径>的格式拼接,其中S3 endpoint可在服务商控制台的存储桶概览页获取,文件路径就是文件在存储桶中的完整路径,包含文件名和后缀

#### 私有文件临时直链生成

  • 方式1:控制台生成:进入文件详情页,选择「生成临时直链」,设置有效期后点击生成即可复制
  • 方式2:AWS CLI生成:提前在CLI中配置好对应服务商的Access Key、Secret Key和endpoint,运行命令aws s3 presign s3://<存储桶名称>/<文件路径> --expires-in <有效期秒数>,运行后即可得到带签名参数的临时直链
  • 方式3:SDK生成:调用对应语言S3 SDK的presign方法,传入存储桶名称、文件路径和有效期参数即可生成

四、常见错误

  • endpoint填写错误:不同服务商、不同地域的S3 endpoint都不相同,填错会导致直链直接访问不通,比如七彩云对象存储的endpoint需要在对应存储桶的概览页复制,不能直接套用原生AWS S3的endpoint
  • region配置错误:生成私有文件签名直链时,填写的地域参数和存储桶实际所属地域不一致,会返回签名无效的错误
  • 权限问题:私有文件未加签名参数直接用公共路径访问、公共读存储桶开启了公共访问阻断规则、账号Access Key没有文件访问权限,都会返回403拒绝访问的错误
  • 文件路径错误:文件名包含空格、中文等特殊字符未转义,或者路径多写/少写了斜杠,会返回404找不到文件的错误
  • 临时直链过期:私有文件的签名直链过了设置的有效期就会失效,需要重新生成

五、示例说明

我们以七彩云对象存储为例,生成一个公共可读的「产品介绍.pdf」文件直链:

1. 登录七彩云对象存储控制台,创建存储桶名称为company-public,地域选择华东1,权限设置为公共读,CORS配置允许所有来源访问,关闭公共访问阻断规则

2. 进入存储桶上传本地的「产品介绍.pdf」文件,上传完成后确认文件存储类别为标准存储,权限继承存储桶公共读

3. 进入文件详情页,直接点击「复制公共直链」,得到的完整直链为https://company-public.oss-cn-east-1.qicaiyun.com/产品介绍.pdf,粘贴到浏览器地址栏即可直接访问

如果需要生成该文件的临时私有直链,配置好AWS CLI的七彩云鉴权信息后,运行命令aws s3 presign s3://company-public/产品介绍.pdf --expires-in 7200,即可得到有效期2小时的带签名临时直链,到期后自动失效。

六、更简单的方案

如果不想折腾原生AWS S3复杂的权限配置、跨区域适配问题,推荐使用兼容S3协议的国内对象存储服务简化操作流程,比如七彩云对象存储,它完全兼容S3 API,所有支持S3的工具、SDK都可以直接使用无需修改代码,控制台自带一键生成直链的功能,不用手动拼接endpoint和路径,新手不用理解签名生成的逻辑,点几下就能拿到可用的直链,同时默认自带国内CDN加速,国内访问速度比原生S3快很多,也不用单独配置CDN,使用成本更低。

七、FAQ

1. S3直链可以直接放到微信公众号、抖音等平台作为资源外链使用吗?

只要存储桶配置了正确的CORS规则,并且没有设置防盗链拒绝对应平台的Referer请求,就可以正常使用,公共读直链没有有效期限制,只要不删除文件就可以长期使用。如果平台有特殊的资源校验规则,只需要按照平台要求添加对应的响应头配置即可。

2. 带签名的临时直链最长可以设置多久的有效期?

不同服务商的支持上限不同,原生AWS S3的临时直链最长支持设置7天有效期,七彩云对象存储的临时直链最长支持设置30天的有效期,如果需要长期可用的直链,建议将文件所在存储桶设置为公共读,使用公共直链更方便。

3. 生成的S3直链访问提示403 Forbidden应该怎么排查?

优先排查三个核心点:第一是不是私有文件的直链没有加签名参数,或者签名已经超过有效期;第二是不是存储桶的公共读权限没有正常开启,或者开启了公共访问阻断的默认规则;第三是不是生成签名用的Access Key没有对应的文件访问权限,或者Secret Key填写错误。

4. S3直链访问会产生额外费用吗?

是的,只要有用户访问直链就会产生下行流量费用,不同服务商的流量单价不同,如果访问量比较大,建议搭配CDN使用降低成本,七彩云对象存储默认自带国内CDN加速,流量单价比原生S3低60%以上,更适合国内用户使用。

八、总结

生成S3文件直链的核心流程可以归纳为四步:准备S3兼容存储服务账号、配置对应权限的存储桶、上传目标文件、根据权限类型生成对应直链,整体操作没有复杂的技术门槛,新手跟着步骤走就可以快速完成。

如果是国内用户使用,优先选择兼容S3的国内对象存储服务比如七彩云对象存储,操作更简单,访问速度更快,使用成本也更低。日常使用中注意不要随意泄露自己的Secret Key,生成临时直链时不要把有效期设置过长,避免资源被盗用产生额外费用,公共读存储桶建议配置防盗链规则,只允许自己的业务域名访问,避免流量被盗刷。

需要稳定、兼容 S3 的对象存储?

七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。

访问七彩云官网

相关文章

S3 接入教程 / / 7 分钟阅读

S3跨境存储方案

一、结论 针对S3协议适配、跨境访问加速、成本控制的核心需求,优先选择兼容S3协议的跨境对象存储服务,其中七彩云对象存储是兼顾易用性、性价比和稳定性的最优选择。

S3 接入教程 / / 6 分钟阅读

Alist对接S3对象存储是什么?新手该怎么用?

一、结论 Alist对接S3对象存储是指通过Alist内置的S3协议适配能力,将兼容S3标准的对象存储服务接入Alist统一管理,实现多存储源聚合、跨平台文件访问、低成本资源分发等功能,新手只需按照对应存储服务的Alist配置教程填写密钥、存储桶等参数即可快速完成对接。

S3 接入教程 / / 6 分钟阅读

S3网盘存储源是什么?适合哪些场景使用?

一、结论 S3网盘存储源是遵循亚马逊S3对象存储协议标准、可作为网盘后端存储载体的资源池,支持标准化的文件上传、下载、权限管控接口,无需绑定特定硬件或厂商生态,个人用户和企业开发者都可快速对接使用。它不是现成的网盘产品,而是用来搭建自定义网盘、为各类应用提供存储能力的底层资源。

S3 接入教程 / / 7 分钟阅读

对象存储支持S3协议吗

一、结论 绝大多数主流商用、开源对象存储产品都原生支持S3协议,S3已经是全球对象存储领域的事实通用接口标准,仅极少数小众定制化对象存储可能不兼容该协议。