Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

youzanyun-oss-sdk

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

youzanyun-oss-sdk

有赞 node 端的 oss

  • 3.0.2
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

有赞 OSS node 客户端

有赞 OSS 下的 Node 客户端,提供 put、putStream、get、getStream、head、delete 方法

使用姿势

安装依赖

  yarn add @youzan/youzan-oss -S

Node 里使用

在 3.x 版本中,导出方式已订正为 ESM 标准导出,使用 CommonJS 的同学注意

上传文件到 OSS

CJS

  const OSS = require('@youzan/youzan-oss').default;

  // 实例化
  const client = new OSS({
    namespace: 'xxxx', // 需要申请
    env: 'prod',       // 可选。环境
  });

  // 上传文件,xxx 可以是文件路径、Buffer 或者是可读流
  // key 是用来查找改资源文件的钥匙
  client.put('key', 'xxxxx')
    .then(url => {
      console.log('put done. The resource url is %s', url);
    })
    .catch((err) => {
      console.log(err);
    })

ESM

import OSS from '@youzan/youzan-oss'

const client = new OSS({
  namespace: 'xxxx',
  env: 'prod'
})

const url = await client.put('key', 'xxxxx')

从 OSS 上获取文件

  const OSS = require('@youzan/youzan-oss').default;

  // 实例化
  const client = new OSS({
    namespace: 'xxxx' // 需要申请
  });

  // 查找文件
  // key 是上传时定义的
  // xxxx 可传,文件地址,传入后把 OSS 上的文件写入到此
  client.get('key', 'xxxxx')
    .then(() => {
      console.log('get done');
    })
    .catch((err) => {
      console.log(err);
    })

API 介绍

OSS 实例化

目前实例化时值需要传入 namespace 即可,namespace 需要找运维申请

使用方法:
  const client = new OSS({
    namespace: 'xxxx' // 需要申请
  });
参数:
参数类型描述是否必传默认值备注
namespacestring命名空间需要申请
envstring环境NODE_ENV
hoststring请求的 host 域名src/constants/index不传时会根据环境获取

put 方法

put 方法用来将本地文件上传到 OSS

使用方法:
  client.put('object-key', file)
    .then(url => {
      console.log('put done. The resource url is %s', url);
    })
    .catch((err) => {
      console.log(err);
    })
参数
参数类型描述是否必传默认值备注
keystring文件对应的 key每个上传的文件对应的 key
fileBuffer、ReadStream、string需要上传的文件可以是文件路径、Buffer、可读流
optionsurllib.RequestOptions请求参数详见:https://www.npmjs.com/package/urllib

stream 流式上传

putStream 方法用来将本地大文件上传到 OSS,可监听进度
(适合大文件)

使用方法:
  const stream = client.putStream('object-key', file);
  let total = 0;
  let count = 0;

  stream.on('progress', (contentLength, totalLength) => {
    total += contentLength;
    count += 1;
    console.log(total + '------' + count);
  });

  stream.on('finish', url => {
    console.log('put done. The resource url is %s', url);
    console.log('finish', total + '------' + count)
  });

  stream.on('error', (err) => console.log(err));
参数
参数类型描述是否必传默认值备注
keystring文件对应的 key每个上传的文件对应的 key
fileReadStream、string需要上传的文件可以是文件路径、可读流
optionsurllib.RequestOptions请求参数详见:https://www.npmjs.com/package/urllib

get 方法

get 方法用来获取 OSS 上的文件

使用方法1 - 存储到文件里
  client.get('object-key', file)
    .then(() => {
      console.log('done');
    })
    .catch((err) => {
      console.log(err);
    })
使用方法2 - 存储到内存中
  client.get('object-key')
    .then((buf) => {
      // 返回 Buffer
      console.log(buf');
    })
    .catch((err) => {
      console.log(err);
    })
参数
参数类型描述是否必传默认值备注
keystring文件对应的 key每个上传的文件对应的 key
filestring需要写入的文件路径如果传入,将 OSS 上的内容写入到该文件
optionsurllib.RequestOptions请求参数详见:https://www.npmjs.com/package/urllib

stream 流式获取方法

getStream 通过流的形式获取 OSS 文件,可获取下载进度。常用来获取大文件

使用方法
  const stream = client.getStream('object-key', file);
  let total = 0;

  stream.on('progress', (contentLength, totalLength) => {
    total += contentLength;

    console.log('获取进度为:'  + total / totalLength);
  });

  stream.on('finish', () => console.log('获取完毕'));

  stream.on('error', (err) => console.log('获取出错' + err));
参数

getStream 入参和上面 get 相同。返回的实例可监听 on、finish、error

参数类型描述是否必传默认值备注
keystring文件对应的 key每个上传的文件对应的 key
filestring、WriteStream需要写入的文件如果传入,将 OSS 上的内容写入到该文件或可写流
optionsurllib.RequestOptions请求参数详见:https://www.npmjs.com/package/urllib

head 方法

head 方法用来获取 OSS 上的文件信息

使用方法:
  client.head('object-key')
    .then((info) => {
      console.log(info);
    })
    .catch((err) => {
      console.log(err);
    })
参数
参数类型描述是否必传默认值备注
keystring文件对应的 key每个上传的文件对应的 key

delete 方法

delete 会删除 OSS 上的文件

使用方法:
  client.delete('object-key')
    .then(() => {
      console.log('delete done');
    })
    .catch((err) => {
      console.log(err);
    })
参数
参数类型描述是否必传默认值备注
keystring文件对应的 key每个上传的文件对应的 key

错误信息

codemessage备注
FILE_OUT_OF_SIZE文件超过限制默认限制 1 G
UNKNOWN_HOST当前 host 不是标准的环境变量host 必须是 qa pre prod test officeProd 中的一个

Keywords

FAQs

Package last updated on 02 Mar 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc