npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

baidu-bos

v1.0.6

Published

简易的上传 BOS 的命令行工具,用法同 edp bos

Downloads

14

Readme

baidu-bos

npm (scoped with tag) Build Status Coverage Status

项目背景

将静态资源上传到 BOS (Baidu Object Storage,一个由百度云服务提供的 CDN 存储)

本项目的目的主要有 2 个:

  1. 原命令 edp bos 在开发中颇为方便,但随着 edp 本身的消亡,现在为了使用 edp bos 不得不安装 edp 是本末倒置的;如果你不想改变习惯了的命令参数格式,可以尝试使用 baidu-bos,它的参数格式和 edp bos 完全相同。

  2. 原命令 edp bos 对通配符的支持相当有限,基本上只支持 . 表示当前目录的所有文件,无法支持例如 package 开头的文件,目录中包含子目录的所有文件,文件和目录同时上传等需求。baidu-bos 扩展了通配符的支持,且语法和主流类库相同。

安装

npm i baidu-bos -g

重要提示

  1. 如果您是初次使用,请先使用 baidu-bos config set 命令配置 bos.ak, bos.sk 和 bos.endpoint。具体取值可以咨询百度云服务
  2. 如果您是从 edp bos 迁移而来,请使用 baidu-bos config import-from-edp 命令直接从 edp 导入配置,可以省去分别设置的麻烦
  3. 设置 bos.endpoint 时必须加上协议头,例如 http://bos.nj.bpc.baidu.com,否则可能会有网络连接的错误出现

上传文件

  • 普通上传

    使用本地的文件路径和文件名,拼接在 CDN 路径之后

    baidu-bos dir/a.js bos://<bucket>/path
    # 目标地址:<bucket>/path/dir/a.js
  • 指定 CDN 地址

    无视本地的文件路径和文件名,指定 CDN 上的远程路径和文件名

    baidu-bos dir/b.js bos://<bucket>/path/b-2.js
    # 目标地址:<bucket>/path/b-2.js
  • 使用通配符 (minimatch)

    使用通配符 (minimatchglob) 匹配多个文件

    baidu-bos dir/**/*.js bos://<bucket>/path
    # 上传所有 dir 目录(包括子目录) 下的 js 文件。目标 URL 维持原有的层级结构
    
    baidu-bos pack* bos://<bucket>/path
    # 上传当前目录所有 pack 开头的文件
  • 上传当前目录下所有文件 (快捷操作)

    将当前目录下 (包含子目录) 的所有文件上传。按照通配符的写法应当是 **,但为了简便,您可以直接写 .,效果等价。

    baidu-bos . bos://<bucket>
    # 等价于 baidu-bos ** bos://<bucket>
  • 上传目录 (快捷操作)

    上传目录时,按照通配符的写法应当是 src/**,但为了简便,您可以省略 **,直接使用 src/

    特别地,如果目录参数 不包含 通配符,则可以省略最后的 /,直接使用 src

    baidu-bos dir bos://<bucket>/dir
    # 等价于 baidu-bos dir/** bos://<bucket>
    
    baidu-bos user*/static/ bos://<bucket>/dir
    # 等价于 baidu-bos user*/static/** bos://<bucket>/dir
    # 此时 static 后面的 / 不能省略!
  • 混合使用

    上述目录参数均可以空格为间隔,混合使用。

    baidu-bos dir/a.js dir/b.js dir-2 bos://<bucket>
    # 分别上传 dir/a.js, dir/b.js 和 dir-2 目录(及子目录)的全部内容

输出形如:

baidu-bos INFO url:     http://bos.nj.bpc.baidu.com/<bucket>/a.js

控制 Header

使用 -H 或者 --header 可以控制响应头,目前支持的参数有:

  • nocache 为上传的所有文件添加响应头 Cache-Control: 'max-age=0,nocache',提示浏览器不要缓存该文件。
  • download 为上传的所有文件添加响应头 `Content-Disposition': 'attachment; filename="[file-name]"',直接访问时可让浏览器下载该文件。

使用举例

baidu-bos dir/a.js bos://<bucket>/path -H nocache
# 上传 dir/a.js 并设置响应头,忽略缓存

baidu-bos . bos://<bucket>/path -H download,nocache
# 上传当前目录下所有文件,并设置响应头,忽略缓存且使用下载处理

配置相关

在首次使用时,您可能需要配置 bos.ak, bos.sk 和 bos.endpoint。此外,您也可能会在使用过程中切换/修改某个配置项,可以使用 baidu-bos config 命令。

  • 写入配置

    可初次写入 / 覆盖某项配置

    baidu-bos config set [key] [value]
    # 如 baidu-bos config set bos.ak 12345
  • 读取配置

    baidu-bos config get [key]
    # 如 baidu-bos config get bos.ak
  • 列出所有配置

    baidu-bos config list
  • 删除一项配置

    baidu-bos config remove [key]
    # 如 baidu-bos config remove bos.ak
  • 删除全部配置

    baidu-bos config remove-all
  • 从 edp 导入配置

    baidu-bos config import-from-edp
    # 根据 edp config 的输出内容获取 bos.ak, bos.sk, bos.endpoint 并直接写入