记录一下阿里云OSS直接通过web端或者其他的前端上传文件时,bucket配置过程

当我们上次文档到oss,不通过后端上传,而是改用直接通过前端直连上传时,应该怎么处理?

1.后端接口根据规则返回如下相关参数

2.我的前端代码如下,代码执行后直接返回了url文件地址

html 复制代码
/**
 * 前端直传 OSS,返回可公开访问的文件 URL
 */
export async function uploadVideoToOss(file: File): Promise<string> {
  const signRes = await useClientRequest<AppResp<OssSignData>>('app/video/getOssUploadSign', {
    method: 'GET',
    params: { fileName: file.name },
  })
  if (!signRes || signRes.code !== 200 || !signRes.data) {
    throw new Error(signRes?.msg || '获取上传签名失败')
  }
  const sign = signRes.data
  const formData = new FormData()
  formData.append('key', sign.key)
  formData.append('policy', sign.policy)
  formData.append('OSSAccessKeyId', sign.accessKeyId)
  formData.append('signature', sign.signature)
  formData.append('success_action_status', '200')
  formData.append('file', file)

  const uploadUrl = (sign.uploadUrl || '').replace(/\/$/, '')
  await new Promise<void>((resolve, reject) => {
    const xhr = new XMLHttpRequest()
    xhr.open('POST', uploadUrl)
    xhr.withCredentials = false
    xhr.timeout = 120000
    xhr.onload = () => {
      if (xhr.status >= 200 && xhr.status < 300) {
        resolve()
        return
      }
      reject(new Error(`OSS上传失败:HTTP ${xhr.status}`))
    }
    xhr.onerror = () => reject(new Error('OSS上传失败,请检查网络或跨域配置'))
    xhr.ontimeout = () => reject(new Error('OSS上传超时'))
    xhr.send(formData)
  })
  const base = (sign.domain || sign.uploadUrl || '').replace(/\/$/, '')
  return `${base}/${sign.key}`
}

3.下面这步很重要,OSS中一定要这样配置,否则上传成功页无法访问,会一直提示跨域问题

跨域设置,添加规则

公共访问,必须关闭

读写权限,必须设置公共读

相关推荐
研究点啥好呢3 分钟前
面馆开业!客官,你的面(经)好了!
python·阿里云·docker·面试·reactjs·求职招聘·react
深邃的眼8 小时前
微信小程序从 0-1:从本地开发到部署服务器上线整体流程保姆式教学
阿里云·微信小程序·个人开发
随读手机9 小时前
多式联运信息交互平台完整方案(2026版)
java·ai·eclipse·云计算·区块链
yyuuuzz9 小时前
aws亚马逊入门常见认知误区
运维·服务器·网络·云计算·github·aws
DeepFlow 零侵扰全栈可观测10 小时前
运动战:AI 时代 IT 运维的决胜之道——DeepFlow 业务全链路可观测性的落地实践
运维·网络·人工智能·arcgis·云计算
Damon小智17 小时前
腾讯云轻量服务器部署 OpenClaw + QClaw 全流程实践:打造随时在线的个人 AI 助手
服务器·云计算·腾讯云
不懒不懒17 小时前
【保姆级教程:阿里云百炼 API Key 获取与 OpenAI 兼容调用指南】
阿里云·云计算
m0_7390300017 小时前
AWS入门必看:5个核心服务,搞懂你就会用80%的AWS
云计算·aws
阿里云大数据AI技术20 小时前
重构搜索范式:阿里云 Elasticsearch 开启“Agent 原生”时代,打造企业级 AI 记忆湖
人工智能·elasticsearch·阿里云·agent·搜索
智慧医养结合软件开源1 天前
可视化呈现长者分布与年龄结构,赋能精准康养管理
大数据·安全·百度·微信·云计算