阿里云oss怎么用?上传文件后怎么拿到外链

如果你刚开始接触云存储,阿里云OSS(Object Storage Service,对象存储服务)大概率是第一个要认真上手的产品。图片、视频、日志、备份这类非结构化文件都可以放进去,还能通过 HTTP 直接访问。阿里云oss怎么用,大致分三步:建好存储空间,用控制台或命令行把文件放进去,再用代码上传并拿到外链。下面按这个顺序讲,中间穿插几个容易踩的坑。

阿里云oss怎么用?上传文件后怎么拿到外链

先搞清几个基本概念

后面的操作会反复出现下面几个词,弄清楚之后,看配置和报错信息都会顺很多。

  • Bucket(存储空间):存放数据的容器。名称在全局范围内唯一,创建后不能修改,起名时可以带上项目名或年份。
  • Object(对象):实际存放的文件,由 Key(文件路径)和数据本身组成。Key 里的斜杠只是路径约定,OSS 没有真正的文件夹。
  • Region(地域):Bucket 所在的数据中心,比如华东1(杭州)、华北2(北京)。尽量和你的服务器选同一个地域,访问延迟会低一些。
  • Endpoint(访问域名):访问 Bucket 的地址,格式一般是 oss-cn-hangzhou.aliyuncs.com,必须和 Bucket 所在地域对应。
  • AccessKey(访问密钥):由 AccessKeyId 和 AccessKeySecret 组成,是调用接口时的身份凭证。一旦泄露,别人就能以你的身份操作。

创建 Bucket

登录阿里云,进入对象存储 OSS 控制台。第一次使用需要完成实名认证并开通服务。之后点击“创建 Bucket”,有几个选项要想清楚:

  • 名称:只能包含小写字母、数字和短横线,比如 my-demo-bucket-2024。
  • 地域:选离你的服务器或用户更近的地域,后面的 Endpoint 要跟着对上。
  • 存储类型:频繁访问的图片和页面资源用标准存储。低频访问和归档存储单价更低,但取回数据要额外收费,更适合很少读取的备份。
  • 读写权限:私有最安全,公共读适合需要直接对外展示的内容。拿不准就先选私有,需要公开时再调整。

假设一个小型电商团队要存放商品主图,可以建一个标准存储、华东1地域、私有读写的 Bucket。前端展示时,由后端生成带时效的签名 URL 返回,既不用公开整个 Bucket,页面也能正常显示图片。

用控制台上传和查看文件

进入 Bucket 后,在“文件管理”里可以上传文件、新建目录、下载和删除对象。偶尔传几个文件,用控制台最省事,点开某个对象还能看到它的完整路径和大小。

控制台对单个文件的大小有限制。文件较大或数量较多时,改用 ossutil 或 SDK 上传会省不少事。

用 ossutil 命令行批量操作

ossutil 是阿里云官方的命令行工具,适合批量上传、复制目录和写脚本运维。安装后先做一次配置,按提示填入 AccessKeyId、AccessKeySecret 和 Endpoint:

ossutil config -e oss-cn-hangzhou.aliyuncs.com -i 你的AccessKeyId -k 你的AccessKeySecret

几条常用命令如下:

# 上传单个文件
ossutil cp ./logo.png oss://my-demo-bucket-2024/images/logo.png

# 递归上传整个目录
ossutil cp -r ./site-assets oss://my-demo-bucket-2024/assets/

# 列出某个路径下的对象
ossutil ls oss://my-demo-bucket-2024/images/

注意 cp -r 是整目录复制,重复执行会再次上传同名文件。如果只想传有变化的内容,可以看看 sync 子命令。另外,AccessKey 不要直接写进脚本或提交到代码仓库,放在环境变量里,或者只有本机能读的配置文件中会更稳妥。

用 Python SDK 上传并拿到外链

业务系统里一般不会手动敲命令,而是通过 SDK 调用。下面用官方的 Python 库 oss2 举例,先执行 pip install oss2 安装。

import os
import oss2

# 从环境变量读取凭证,避免明文写入代码
auth = oss2.Auth(
    os.environ["OSS_ACCESS_KEY_ID"],
    os.environ["OSS_ACCESS_KEY_SECRET"],
)
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
bucket = oss2.Bucket(auth, endpoint, "my-demo-bucket-2024")

# 上传本地文件
bucket.put_object_from_file("images/product-001.jpg", "./product-001.jpg")

# 生成 10 分钟有效的临时访问链接(600 秒)
url = bucket.sign_url("GET", "images/product-001.jpg", 600)
print(url)

# 下载到本地
bucket.get_object_to_file("images/product-001.jpg", "./downloaded.jpg")

# 删除对象(会真正删除文件,测试时先确认是否需要保留)
bucket.delete_object("images/product-001.jpg")

外链分两种情况。如果 Bucket 是公共读,文件的普通 URL 就能直接打开,格式是 https://Bucket名.Endpoint/Object路径。如果是私有读写,直接访问会返回 403,这时就要用 sign_url 生成带签名和有效期的链接。链接过期后自动失效,前端拿到的也只是临时链接,不需要接触长期密钥。

权限和密钥的几条底线

大多数安全问题都出在权限配置上,有几条值得直接照做:

  • 业务代码使用 RAM 子账号的 AccessKey,并且只授予需要的 OSS 操作权限,不要直接用主账号密钥。
  • 密钥怀疑泄露时,马上在控制台禁用并重新生成,再去查访问日志。
  • 敏感文件保持私有,需要分享时发签名 URL。别为了图省事,把整个 Bucket 改成公共读。
  • 重要数据可以开启版本控制,误删或被覆盖后还能找回旧版本。

常见报错怎么查

  • 403 AccessDenied:多半是 RAM 权限不够,或者 Bucket 的读写权限和请求方式对不上。先看子账号策略里有没有对应的操作。
  • NoSuchBucket:Bucket 名称或 Endpoint 的地域写错了。两者必须属于同一地域,这个问题很常见。
  • SignatureDoesNotMatch:签名计算不对。常见原因是服务器时间偏差较大,或者 AccessKeySecret 复制时带了空格。
  • 外链打不开:私有 Bucket 的普通 URL 无法直接访问,改用签名 URL,或者确认是否真的需要改成公共读。

整体流程就是先建 Bucket,日常文件用控制台或 ossutil 处理,程序里用 SDK 上传,外链则根据读写权限选普通 URL 或签名 URL。建议先在测试 Bucket 里把流程跑通,确认权限和链接都没问题,再接入生产环境。CDN 加速、生命周期规则这些进阶功能,等基础流程稳定以后再看。

赞 (0)
阿里云金融云选型要看哪些合规与架构细节
上一篇 2026年11月1日 上午1:20
阿里云账号登陆失败,多半是这几个地方出了问题
下一篇 2026年11月1日 上午1:20

相关推荐

  • 阿里云附件怎么存、怎么发才不踩坑

    业务系统里,用户上传的合同、图片、报表,以及系统自动生成的附件,放在哪里、怎么访问、怎么保证安全,看起来是小事,实际很容易出问题。阿里云附件的思路是把文件从业务数据库里拿出来,交给对象存储和权限体系去管。 为什么不建议把附件直接存进数据库 早期不少项目把文件以 BLOB 字段写进关系型数据库。文件少的时候没什么问题,文件一多,数据库备份变慢,主库体积膨胀,查…

    2026年11月1日
  • 阿里云域名证书申请后怎么部署,续期要注意什么

    网站开了HTTPS,地址栏出现小锁,访客才会放心填信息。阿里云上的业务大多是这样:证书申请下来了,真正麻烦的是部署和续期。这篇文章按实际操作的顺序讲一遍,从选类型、走验证,到装进服务器,再到到期前怎么不出事。 早期很多小站会想着”以后再说”。可访客一打开就看到”您的连接不是私密连接”,大部分人会直接关掉,登录页…

    2026年10月31日
  • 阿里云电脑版怎么用?安装登录和日常操作一次说清

    很多人第一次看到阿里云电脑版,心里多半会先打个问号:它和装在本机上的普通软件有什么不同,花时间配置是否值得。简单说,它是把一台云端桌面接到你的本地设备上,系统、应用和文件都在云端运行,你在本机看到的是同一个画面。下面按基础认识、安装登录、初始设置和几种常见用法来讲,看完你应该能判断它适不适合自己现在的工作方式。 阿里云电脑版到底是什么 阿里云电脑版本质上是一…

    2026年10月31日
  • 识别山寨阿里云的5个方法,别把假云服务当真

    搜索“阿里云服务器 便宜”时,常能看到页面风格和官网很像、价格却低很多的结果。这类冒用阿里云名义的网站或平台,一般被叫作山寨阿里云。多数并不提供真正的云资源,收了钱就消失,或者借机拿走账号和付款信息。 什么是山寨阿里云 山寨阿里云指未经授权,就借用阿里云品牌、界面或业务名义的网站、代理和平台。它们的目的通常是收费或盗取账号,很少打算长期提供服务。 常见形式大…

    2026年10月31日
  • 曝马云减持阿里股票,减持额和时间点都说了什么

    近期有关马云减持阿里巴巴股票的消息传开后,不少投资者的第一反应是创始人是不是对公司失去了信心。这种联想可以理解,但不必急着下结论。先把减持的数量、时间和方式看清楚,再放回背景里想。 先看披露,再看标题 上市公司大股东和董事的股份变动需要依法披露。阿里巴巴在香港联交所挂牌,权益变动通常要在规定时间内通过交易所公告公开。所以,判断一次减持是否真的发生,要以公告和…

    2026年10月31日
返回顶部