阿里云oss无法访问.apk或者.ipa的文件

news2024/11/27 10:24:40

--

有意栽花花不发

无心插柳柳成荫

0048-00000201

更新时间:2023-07-19 10:31:16

问题描述

在2023年08月15日后为Bucket开通传输加速,如果通过OSS传输加速域名访问其中后缀为.apk或者.ipa的文件,服务器返回400错误。

问题原因

出于安全考虑,自2023年08月15日起,针对该日期之后开通传输加速的Bucket,通过OSS传输加速域名(bucketname.oss-accelerate.aliyuncs.com或bucketname.oss-accelerate-overseas.aliyuncs.com)访问后缀为.apk或者.ipa的文件,使用URL签名或匿名访问请求将被阻断。服务器返回400错误,错误码为ApkDownloadForbidden。 

问题示例

以下请求使用OSS传输加速域名匿名访问.apk文件,服务器返回400错误。

GET /test.apk HTTP/1.1
Host: oss-example.oss-accelerate.aliyuncs.com

HTTP/1.1 400 Bad Request
Server: AliyunOSS

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>ApkDownloadForbidden</Code>
  <Message>The APK file is not allowed to be distributed in a public network using the OSS endpoint, please use CNAME instead.</Message>
  <RequestId>xxxxxxxxxxxxx</RequestId>
  <HostId>oss-example.oss-accelerate.aliyuncs.com</HostId>
</Error>

解决方案

使用自有域名访问上述文件时将不会被阻断。如何使用自有域名访问OSS,请参见绑定自定义域名。

 

0048-00000201_对象存储(OSS)-阿里云帮助中心 

绑定自定义域名

更新时间:2023-12-14 15:30:39

产品详情

相关技术圈

我的收藏

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

文件上传到OSS后,OSS会使用Bucket默认域名生成文件访问地址。使用浏览器访问该地址时,会触发强制下载行为。如果您的业务不希望暴露Bucket默认域名或有在浏览器中预览文件的需求,您需要为Bucket绑定自定义域名,然后通过自定义域名访问该Bucket中的文件。绑定自定义域名后,不影响继续使用OSS提供的域名。

前提条件

  • 已创建Bucket。具体步骤,请参见创建存储空间。

  • 已注册二级域名。支持绑定非阿里云注册的域名。如果您还未注册域名,您可以在阿里云域名服务平台注册域名。具体步骤,请参见注册域名。

  • 如果要绑定的Bucket的地域在中国内地,确保域名已备案。支持绑定非阿里云备案的域名。如果您的域名还未备案,您可以在阿里云ICP备案系统备案域名。具体步骤,请参见ICP备案流程概述。

使用场景

  • 文件预览:通过自定义域名访问OSS Bucket,避免OSS强制增加下载响应头,实现在浏览器中预览文件。

  • 品牌形象和专业性:将自定义域名绑定到OSS Bucket,提供个性化域名,增强品牌形象和专业性,增加用户信任度。

  • 防止域名被拦截:一些应用或平台可能会对Bucket默认域名进行拦截。您可以为Bucket绑定自定义域名,以确保您的OSS Bucket中的资源能够被正常访问。

  • 访问方便性:使用自定义域名访问OSS Bucket,方便易记,相比使用OSS默认域名,更简洁友好,轻松访问和分享资源。

  • 用户体验优化:通过自定义域名,提高访问速度,结合CDN加速技术,实现快速内容分发和下载,减少延迟,提升用户体验。

  • 链接的持久性:绑定自定义域名到OSS Bucket后,即使后续存储位置或服务有变化,用户仍可使用相同域名访问资源,确保链接的持久性,长期可访问和使用存储资源。

实现原理

访问Bucket默认域名会默认下载文件,而绑定自定义域名后会默认预览文件的实现原理如下:

访问Bucket默认域名

访问自定义域名

出于数据传输安全考虑,使用OSS提供的Bucket默认域名(<bucketName>.oss-<regionId>.aliyuncs.com)访问Bucket的文件(网页、图片)时,OSS会在返回中强制增加下载响应头(x-oss-force-download: trueContent-Disposition: attachment)。浏览器检测到Content-Disposition: attachment时,会触发强制下载行为。使用OSS提供的域名访问文件时,触发下载行为的请求流程如下:

2.png

关于使用OSS的默认Bucket域名访问文件,触发自动下载的生效时间和生效对象,请参见附录:强制下载命中的x-oss-ec规则。

使用限制

  • 不支持绑定中文域名。

  • 每个域名只能绑定至一个Bucket。

  • 每个Bucket最多可以绑定100个域名。

  • 通过OSS管理控制台绑定自定义域名时,不允许绑定泛域名(将域名前缀设置为*,从而将二级域名的所有子域名都指向Bucket默认域名)。通过CDN加速OSS时,允许绑定泛域名,但该域名不会在OSS管理控制台显示。

操作步骤

步骤一:绑定自定义域名

根据域名所属服务提供商和所属账号,参考对应的步骤将域名绑定至OSS Bucket。

说明

  • 如果您不确定域名所属服务提供商,您可以在域名信息查询(WHOIS)页面进行查询。

  • 如果您不确定域名是否属于当前阿里云账号,您可以在云解析DNS控制台进行查询。

绑定当前阿里云账号注册的域名

绑定其他阿里云账号注册的域名

绑定非阿里云账号注册的域名

将当前阿里云账号注册的域名,绑定至OSS Bucket的操作步骤如下:

  1. 登录OSS管理控制台。

  2. 单击Bucket 列表,然后单击目标Bucket名称。

  3. 在左侧导航栏,选择Bucket 配置>域名管理

  4. 域名管理页面,单击绑定域名

  5. 绑定域名面板,输入要绑定的自定义域名,例如static.example.com,开启自动添加 CNAME 记录,然后单击提交

    1.png

    成功提交后,云解析DNS会根据您填写的域名自动添加一条CNAME记录,将自定义域名解析至被绑定的Bucket的外网访问域名。

    1.png

    说明

    如果您没有开启自动添加 CNAME 记录,在提交后,您需要在云解析DNS控制台手动添加一条CNAME记录,否则绑定的自定义域名不会生效。

步骤二:验证自定义域名

绑定自定义域名后,您可以使用nslookupdig命令来检查CNAME解析的结果。如果域名解析结果显示为您绑定的Bucket的外网访问域名,则说明自定义域名的CNAME解析已生效。

nslookup

dig

将example.com替换为您要查询的域名,然后执行以下命令。

nslookup -type=CNAME example.com

成功返回示例如下。

1.png

步骤三:使用自定义域名

自定义域名生效后,您可以直接通过HTTP协议访问文件。

  1. 上传文件。

    具体操作,请参见简单上传。

  2. 获取文件URL。

    临时文件URL

    长期文件URL

    获取临时有效的文件URL的操作步骤如下:

    1. 设置文件读写权限ACL为私有。

      具体操作,请参见设置Object ACL。

    2. 私有文件URL的格式为http://YourDomain/ObjectName?签名参数。您可以通过以下方法获取文件URL并设置URL的有效时长。

    使用OSS控制台

    使用图形化管理工具ossbrowser

    使用阿里云SDK

    使用命令行工具ossutil

    1. 登录OSS管理控制台。

    2. 单击Bucket列表,然后单击目标Bucket名称。

    3. 在左侧导航栏,选择文件管理 > 文件列表

    4. 在文件列表页面,单击目标文件名称。

    5. 详情面板的自有域名,选择绑定的自定义域名,其他保持默认值,然后单击复制文件URL

      2.png

  3. 在浏览器中,访问生成的文件URL。

    2023-11-07_11-01-40.png

后续操作

使用HTTPS协议

使用CDN加速

避免盗刷

加速跨境传输

托管静态网站

如果您希望使用HTTPS协议访问自定义域名,您需要上传HTTPS证书。具体步骤,请参见证书托管。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1342461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式IO在工业自动化中的应用

传统的自动化产线及物流系统主要是利用PLC来处理数据&#xff0c;并将这些数据保存在PC当中。但是随着互联网技术的迅速发展&#xff0c;越来越多的系统集成商利用分布式IO模块&#xff0c;实现从控制器到自动化最底层之间的IO通信。 分布式IO在工业自动化中的应用 分布式IO是用…

再次被gpt震撼到了,md转json

1.md内容来自excel 参考链接&#xff1a; https://chat.xutongbao.top/

什么是计算机视觉

计算机视觉&#xff08;Computer Vision&#xff09;是一门研究如何让计算机能够理解和分析数字图像或视频的学科。简单来说&#xff0c;计算机视觉的目标是让计算机能够像人类一样对视觉信息进行处理和理解。为实现这个目标&#xff0c;计算机视觉结合了图像处理、机器学习、模…

低代码平台搭建ERP系统 低代码快速开发灵活的ERP

随着数字化时代的到来&#xff0c;企业迫切需要高效、灵活的ERP系统来提高运营效率。在这一背景下&#xff0c;白码低代码平台成为了企业实现数字化转型的首选工具。本文将介绍低代码开发ERP的概念&#xff0c;并以白码低代码平台为例&#xff0c;探讨其在企业数字化转型中的重…

解决jenkins、git拉取代码仓库失败Please make sure you have the correct access rights

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/n…

spellman高压发生器电源维修XRV450PN4500 NY1059

Spellman高压电源X射线发生器维修XRV系列常见维修型号&#xff1a;XRV160N1800, XRV160N3000, XRV160P4000, XRV160P6000/208V 3o, XRV225N3000, XRV225N6000/208V 3o, XRV225P4000, XRV350PN4500, XRV450PN4500。 Spellman所拥有的变频器架构可以使高压电源获得高利用率的效率…

小C说历史(人物介绍第二篇):Unix之父 C语言之父 伟大的Ken Thompson 肯·汤普森

Unix之父 C语言之父 伟大的Ken Thompson 肯汤普森 Unix之父——肯•汤普森&#xff08;Ken Thompson&#xff09;被称作“世界上最杰出的程序员”&#xff0c;他自学编程&#xff0c;26岁创造Unix&#xff0c;改写了计算机操作系统的历史&#xff0c;并在古稀之年成为Go语言的共…

win10 telnet服务开启教程

win10 telnet服务开启教程 1、打开控制面板&#xff0c;选择【程序和功能】 2、点击【启用或关闭Windows功能】 3、勾选【Telnet 客户端】,然后点击确定。

【译文】IEEE白皮书 6G 太赫兹技术的基本原理 2023版

第一章 简介 太赫兹波是介于微波和光波之间的光谱区域&#xff0c;频率从 0.1THz ~ 10THz 之间&#xff0c;波长在 3mm ~ 30μm 之间。提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的需求&#xff0c;使该区域成为下一代无线通信&#xff08;6G&#xff09;的重…

外汇天眼:Valdas Dapkus和Tradewale因零售外汇欺诈计划被判支付280万美元

美国衍生品市场监管机构商品期货交易委员会&#xff08;CFTC&#xff09;宣布&#xff0c;美国新泽西地区法院于11月28日发布了对位于伊利诺伊州的Valdas Dapkus的最终裁定默认令。5月4日&#xff0c;法院对Dapkus控制的两家实体——Tradewale LLC和Tradewale Managed Fund发布…

电子工程师如何接私活赚外快?

对电子工程师来说&#xff0c;利用业余时间接私活是个很常见的技术&#xff0c;不仅可以赚取额外收入&#xff0c;也能提升巩固技术&#xff0c;可以说国内十个工程师&#xff0c;必有五个在接私活养家糊口&#xff0c;如果第一次接私活&#xff0c;该如何做&#xff1f; 很多工…

虚拟机迁移技术原理与应用

虚拟机迁移技术主要应用于两种场景&#xff1a; 第一种&#xff0c;随着现在虚拟化的发展&#xff0c;传统it架构的物理机需迁移到虚拟机上&#xff0c;实现负载均衡、资源优化等目的。 第二种&#xff0c;将虚拟机从一个虚拟化平台迁移到另一个虚拟化平台&#xff0c;可以是…

Django 文件上传(十二)

当 Django 处理文件上传时&#xff0c;文件数据最终会被放置在 request.FILES 。 查看文档&#xff1a;文件上传 | Django 文档 | Django Django工程如下&#xff1a; 创建本地存储目录 在static/应用目录下创建uploads目录用于存储接收上传的文件 在settings.py 配置静态目…

Android Context在四大组件及Application中的表现

文章目录 Android Context在四大组件及Application中的表现Context是什么Context源码Activity流程分析Service流程分析BroadcastReceiver流程分析ContentProvider流程分析Application流程分析 Android Context在四大组件及Application中的表现 Context是什么 Context可以理解…

Python-动态柱状图可视化

柱状图 1.基础柱状图1.1通过Bar构建基础柱状图1.2反转x轴&#xff0c;y轴1.3数值标签在右侧1.4总结 2.基础时间柱状图2.1掌握基础的时间线配置动态图表2.2创建时间线2.3自动播放2.4时间线设置主题2.5总结 3.GDP动态柱状图绘制3.1掌握列表的sort方法并配合配合lambda匿名函数完成…

NAS上使用docker+postgresql搭建私有云笔记joplin全终端适配

文章目录 前置条件步骤1&#xff1a;获取joplin的镜像步骤2&#xff1a;配置容器参数2.1 端口设置2.2环境变量设置&#xff08;配置数据库&#xff09; 步骤3. 启动服务端步骤4. 配置客户端4.1 下载客户端4.2 配置客户端同步 步骤5. 外网访问插件安装 通常我们都会用到印象笔记…

代码随想录刷题笔记(DAY2)

今日总结&#xff1a;今天在学 vue 做项目&#xff0c;学校还有很多作业要完成&#xff0c;熬到现在写完了三道题&#xff0c;有点太晚了&#xff0c;最后一道题的题解明天早起补上。&#xff08;补上了&#xff09; Day 2 01. 有序数组的平方&#xff08;No. 977&#xff09;…

C++ //例13.14 将一批数据以二进制形式存放在磁盘文件中。例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。

C程序设计 &#xff08;第三版&#xff09; 谭浩强 例13.14 例13.15 例13.14 将一批数据以二进制形式存放在磁盘文件中。 例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。…

零基础学Java第二天

复习回顾&#xff1a; 1.dos命令 dir 显示当前文件夹下面的所有的文件和文件夹 cd 切换目录的 mkdir 创建文件夹的 rd 删除文件夹的 del 删除文件 D: 切换盘符 cls 清屏 2.书写Java代码换行打印《静夜诗》这首古诗 class Demo1 { …

uniapp路由

1、路由登记 uni-app页面路由为框架统一管理&#xff0c;开发者需要在pages.json里配置每个路由页面的路径及页面样式。 类似小程序在 app.json 中配置页面路由一样。 所以 uni-app 的路由用法与 Vue Router 不同&#xff0c;如仍希望采用 Vue Router 方式管理路由&#xff0c;…