赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 开发参考
  5. SDK参考
  6. Node.js
  7. 数据安全
  8. 防盗链

防盗链

  • 数据安全
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

您可以使用Node.js SDK在OSS中配置基于请求标头Referer的访问规则,包括白名单Referer、黑名单Referer以及是否允许空Referer等,阻止某些Referer访问您的OSS文件,防止其他网站盗用您的文件,并避免由此引起的不必要的流量费用增加。

注意事项

  • 在配置防盗链之前,请确保您已了解该功能。详情请参见防盗链。

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见OSS访问域名、数据中心、开放端口。

  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见初始化。

  • 要设置或清空防盗链,您必须具有oss:PutBucketReferer权限;要获取防盗链,您必须具有oss:GetBucketReferer权限。具体操作,请参见为RAM用户授权自定义的权限策略。

设置防盗链

以下代码用于设置防盗链。

const OSS = require('ali-oss')

const client = new OSS({
  // yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
  region: 'yourregion',
  // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // 填写存储空间名称。
  bucket: 'examplebucket'
});

async function putBucketReferer () {
  try {
  const result = await client.putBucketReferer(bucket, true, [
  'http://www.aliyun.com',
  'https://www.aliyun.com'
  ]);
  console.log(result);
  } catch (e) {
    console.log(e);
  }
 }

putBucketReferer();

获取防盗链配置

以下代码用于获取防盗链配置。

const OSS = require('ali-oss')

const client = new OSS({
  // yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
  region: 'yourregion',
  // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // yourbucketname填写存储空间名称。
  bucket: 'yourbucketname'
});

async function getBucketReferer () {
  try {
    const result = await client.getBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

getBucketReferer();

清空防盗链

以下代码用于清空防盗链。

const OSS = require('ali-oss')
const client = new OSS({
  // yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
  region: 'yourregion',
  // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // yourbucketname填写存储空间名称。
  bucket: 'yourbucketname'
});

async function deleteBucketReferer () {
  try {
    const result = await client.deleteBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

deleteBucketReferer();

相关文档

  • 关于防盗链的完整示例代码,请参见GitHub。

  • 关于设置防盗链的API接口说明,请参见PutBucketReferer。

  • 关于获取防盗链配置的API接口说明,请参见GetBucketReferer。

相关文章

防盗链 2025-04-21 18:14

您可以使用Node.js SDK在OSS中配置基于请求标头Referer的访问规则,包括白名单Referer、黑名单Referer以及是否允许空Referer等,阻止某些Referer访问您的OSS文件,防止其他网站盗用您的文件,并避免由此引起的不必要的流量费用增加。

跨域资源共享 2025-04-21 18:14

跨域资源共享(Cross-origin resource sharing,简称CORS)允许Web端的应用程序访问不属于本域的资源。OSS提供跨域资源共享接口,方便您控制跨域访问的权限。 设置跨域资源共享规则

保留策略 2025-04-21 18:14

OSS保留策略具有WORM(Write Once Read Many)特性,满足用户以不可删除、不可篡改方式保存和使用数据。如果您希望指定时间内任何用户(包括资源拥有者)均不能修改和删除OSS某个Bucket中的Object,您可以选择为Bucket配置保留策略。在保留策略指定的Object保留时间

服务器端加密 2025-04-21 18:14

OSS支持在服务器端对上传的数据进行加密编码(Server-Side Encryption)。上传数据时,OSS对收到的用户数据进行加密,然后再将得到的加密数据持久化保存下来。下载数据时,OSS自动对保存的加密数据进行解密并把原始数据返回给用户,并在返回的HTTP请求Header中,声明该数据进行了

管理版本控制 2025-04-21 18:14

版本控制应用于存储空间(Bucket)内的所有文件(Object)。通过Object的版本管理,在错误覆盖或者删除Object后,您能够将Bucket中存储的Object恢复至任意时刻的历史版本。 通过Object的版本管理,在错误覆盖或者删除Object后,您能够将Bucket中存储的Object

上传文件 2025-04-21 18:14

本文介绍如何在受版本控制的存储空间(Bucket)中上传文件(Object)。 简单上传

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号