使用 SDK (Nodejs)操作阿里 OSS (对象存储服务)学习笔记

看这篇文章的前提是已经开通了阿里 OSS 服务

一、安装 node 环境(前题是安装 node 版本大于 8.0)

点这里

二、初始化项目
  • 创建一个文件夹
  • 进入到文件夹初始化 npm 环境 npm -init -y
  • 安装插件 npm install ali-oss --save
  • 创建文件 app.js 文件(用于操作 OSS)
三、配置 client 基本参数
let OSS = require('ali-oss');

// 配置项
let client = new OSS({
    region: 'oss-cn-beijing', // 服务时的地域 
    accessKeyId: '您的 accessKeyId',
    accessKeySecret: '您的 accessKeySecret'
});
  • 获取配置 accessKeyId 和 accessKeySecret
    在这里插入图片描述
四、 存储空间(Bucket)
// 接着上一节代码 (创建存储空间)
async function putBucket() {
  try {
    const options = {
      /*
         private: 私有(默认值)
         public-read-write:公共读写
         public-read:公共读
      */
      storageClass: 'Standard', 
      acl: 'private',  
      dataRedundancyType: 'LRS' 
    }
    // 填写Bucket名称。
    const result = await client.putBucket('examplebucket', options);
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}    

在这里插入图片描述

  • 列举存储空间相关方法
// 不传参,则列举所有的存储空间 
let params ={
  prefix: 'prefix' // 指定需要列举的存储空间的前缀。
  marker: 'marker' // 列举指定marker之后的存储空间。(marker代表存储空间名称)
 'max-keys': 20 // 限定此次列举存储空间的个数为20个。
}
async function listBuckets() {
  try {
    // 根据 client.region 来输出存储空间
    const result = await client.listBuckets(params);
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}
  • 判断指定的存储空间是否存在
async function bucketisExist() {
  try {
    const result = await client.getBucketInfo('<Your bucket>')
    console.log('bucketInfo: ', result.bucket)
  } catch (error) {
    // 指定的存储空间不存在。
    if (error.name === 'NoSuchBucketError') {
      console.log
    } else {
      console.log(error)
    }
  }
}
  • 获取存储空间所在地域
// 需要在 client添加 bucket: '<Your bucket name>'
 const result = await client.getBucketInfo
 console.log(result.bucket.Location)
  • 获取存储空间的信息
const result = await client.getBucketInfo('<Your bucket>')
  // 获取存储空间所在的地域。
  console.log(result.bucket.Location) 
  // 获取存储空间的名称。
  console.log(result.bucket.Name)
  // 获取存储空间的拥有者ID。
  console.log(result.bucket.Owner.ID) 
  // 获取存储空间的拥有者名称,目前和拥有者ID一致。
  console.log(result.bucket.Owner.DisplayName)
  // 获取存储空间的创建时间。
  console.log(result.bucket.CreationDate)
  // 获取存储空间的存储类型。
  console.log(result.bucket.StorageClass)
  // 获取存储空间的版本控制状态。
  console.log(result.bucket.Versioning)
五、操作 OSS
  • 基本配置
let OSS = require('ali-oss');

// 配置项
let client = new OSS({
    region: 'oss-cn-beijing', // 服务时的地域 
    accessKeyId: '您的 accessKeyId',
    accessKeySecret: '您的 accessKeySecret'
});
  • 查看在 Buckets 下的文件目录
client.useBucket('huangjiahao'); // 自己创建的 Buckets
async function list() {
    try {
        let result = await client.list({
            'max-keys': 5
        })
        console.log(result.objects)
    } catch (err) {
        console.log(err)
    }
}
  • 上传文件
client.useBucket('huangjiahao');
async function put () {
  try {
      // 阿里oss 中的文件目录及文件命名
      let alifile = `text/3.jpg`; 
      // 本地文件目录
      let localfile = `E:\\pythonwork\\work\\爬虫\\pictures2\\3.jpg`; 
    let result = await client.put(alifile, localfile);
    console.log(result);
   } catch (err) {
     console.log (err);
   }
}
  • 下载文件
async function get () {
  try {
    let alifile = `text/1.jpg`;  
    let localfile =`C:\\Users\\Lenovo\\Desktop\\新建文件夹\\1.jpg`
    let result = await client.get(alifile,localfile);
    console.log(result);
  } catch (err) {
    console.log (err);
  }
}
  • 删除文件
async function deletefile () {
  try {
    let alifile = `text/3.jpg`; 
    let result = await client.delete(alifile);
    console.log(result);
  } catch (err) {
    console.log (err);
  }
}
  • 真正开发在过程中,我们更多的需求是将文件上传到服务器,读取文件时不是将文件下载下来,而是返回 URL 供用户在浏览器查看,目前我所了解到的信息时,需要自定义域名
    在这里插入图片描述
  • 然后我已经注册了一个域名,等待认证通过,等通过后,再来解决这个问题。

欢迎访问我的个人博客

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海面有风

您的鼓励将是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值