Options
All
  • Public
  • Public/Protected
  • All
Menu

Store client api

example
// 脚本库打包依赖规范:
// import * as objectstorage from 'objectstorage' 导入模块不能修改为其他的别名,必须和模块名一致;
// newClient方法里参数不能为变量,否则打包解析不到连接器依赖
import * as objectstorage from 'objectstorage';
import * as buffer from 'buffer';

let minioCli = objectstorage.newClient(objectstorage.StoreType.MINIO, "minio1", "mybucket");
console.log(minioCli.putObject("minio.text", "老的"));
let data = minioCli.getObject("minio.text");
let buf = buffer.fromBytes(data);
console.log(buf.toString());
console.log(minioCli.getEndpoint());

let oldCli = objectstorage.newClient(objectstorage.StoreType.PROXY, "NS__testbucket");
console.log(oldCli.putObject("a.txt", "选择默认的桶"));
data = oldCli.getObject("a.txt");
buf = buffer.fromBytes(data);
console.log(buf.toString());
console.log(oldCli.getEndpoint());

let newCli = objectstorage.newClient(objectstorage.StoreType.PROXY, "NS__testbucket", "cbucket");
console.log(newCli.putObject("a.txt", "不是选择默认的桶"));
data = newCli.getObject("a.txt");
buf = buffer.fromBytes(data);
console.log(buf.toString());

Hierarchy

  • Client

Index

Methods

abortUpload

  • abortUpload(name: string, uploadID: string): void
  • 放弃上传

    Parameters

    • name: string

      对象名

    • uploadID: string

      分段上传id

    Returns void

completeUpload

  • 完成分段上传

    Parameters

    Returns void

copyObject

  • copyObject(sourceObject: string, destObject: string, opt?: CopyOption): void
  • 拷贝对象到新的名字, 注意不能跨桶拷贝

    Parameters

    • sourceObject: string

      原始对象全路径,如 a/b/c.txt

    • destObject: string

      目标对象全路径,如 e/f/g.txt

    • Optional opt: CopyOption

      可选参数 CopyOption

    Returns void

createDir

  • createDir(dir: string, withParent: boolean): void
  • 创建目录

    Parameters

    • dir: string

      目录名

    • withParent: boolean

      如果为true则创建其所有的父目录, 类似 mkdir -p

    Returns void

createMultipartUpload

  • createMultipartUpload(name: string, opt: UploadOption): string
  • 初始化分段上传

    Parameters

    Returns string

deleteDir

  • deleteDir(dir: string): void
  • 删除目录及其下面的所有文件

    Parameters

    • dir: string

      目录名

    Returns void

deleteObject

  • deleteObject(name: string): void
  • 删除对象

    Parameters

    • name: string

      对象名

    Returns void

getEndpoint

  • getEndpoint(): string
  • 获取 endpoint

    Returns string

getObject

  • getObject(name: string): any
  • deprecated

    优先使用 viewObject

    获取对象数据,对象名必须是在桶上的全路径

    Parameters

    • name: string

      对象名

    Returns any

    object 对象的二进制文件内容

getShareToken

  • getShareToken(name: string, timeoutInMinutes: number): string
  • 获取分享凭证用于查看对象

    Parameters

    • name: string

      对象名

    • timeoutInMinutes: number

      凭证的有效时长(分钟)

    Returns string

getUploadToken

  • getUploadToken(name: string): string
  • 获取上传凭证

    Parameters

    • name: string

      对象名

    Returns string

hasObject

  • hasObject(name: string): boolean
  • 判断对象是否存在,存在则返回 true

    example
    import * as objectstorage from 'objectstorage';
    
    let cli = objectstorage.newClient(objectstorage.StoreType.OBS, "sound__cnnorth7");
    console.log(cli.hasObject("a.txt"));
    console.log(cli.hasObject("a-not-exist.txt"));
    

    Parameters

    • name: string

      对象名

    Returns boolean

listDir

listParts

lsDir

  • lsDir(dir: string, recursive: boolean): ObsObject[]
  • deprecated

    优先使用 listDir 列举目录

    Parameters

    • dir: string

      目录

    • recursive: boolean

      是否递归查询所有子目录

    Returns ObsObject[]

putObject

  • putObject(name: string, data: any, ...args: string[]): string
  • deprecated

    优先使用 uploadObject

    上传对象

    Parameters

    • name: string

      对象名(全路径)

    • data: any

      对象二进制内容

    • Rest ...args: string[]

      acl

    Returns string

uploadObject

  • uploadObject(name: string, data: any, opt?: UploadOption): void
  • 上传对象

    example
    import * as objectstorage from 'objectstorage';
    
    let cli = objectstorage.newClient(objectstorage.StoreType.OBS, "sound__cnnorth7");
    // 上传到对象存储系统上完整路径。
    let name = "some/test/123.txt"
    // 文件完整内容, 可为任何文件二进制
    let data = "xxxx"
    // 文件内容类型
    let contentType = "text/plain"
    // 上传
    try {
        cli.uploadObject(name, data, { acl: "public-read", contentType: contentType });
    } catch (e) {
        console.log("upload err", e.message);
    }
    

    Parameters

    • name: string

      对象名(全路径)

    • data: any

      对象二进制内容

    • Optional opt: UploadOption

      上传可选参数 UploadOption

    Returns void

uploadPart

  • uploadPart(name: string, uploadID: string, partNum: number, data: any): CompletedPart
  • 上传分段

    Parameters

    • name: string

      对象名

    • uploadID: string

      上传ID

    • partNum: number

      分段号

    • data: any

      分段数据

    Returns CompletedPart

viewObject

  • 查看对象内容

    example
    import * as objectstorage from 'objectstorage';
    import * as buffer from 'buffer';
    
    let cli = objectstorage.newClient(objectstorage.StoreType.OBS, "sound__cnnorth7");
    let res = cli.viewObject("a.txt");
    console.log(res.contentType);
    console.log(res.contentLength);
    // 如果是文本类型,可通过 buffer.fromBytes 转换成 string 类型
    console.log(buffer.fromBytes(res.data).toString());
    
    // 从下标为1的字节开始读取
    console.log(cli.viewObject("a.txt", { range: "bytes=1-" }));
    

    Parameters

    Returns ViewResult