添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 设备:MacBook Pro M1 (低配,主要用来打字和简单的代码、文档修改)
  • 对象存储平台: 阿里云OSS (因为比较便宜,七牛云虽然有免费空间,但是需要自己有域名)
  • 上传组件:桌面版 PicGo (主要方便换源、安装插件和查看图片)
  • OSS内容查看工具:阿里云的 ossutil (我用的是命令行管理工具,如果你想有丝滑的使用体验就安装图形化管理工具)
  • 由于我上传都是图片,也只作为图床用,所以 ossutil 的命令没有进行完全测试,

    其它的我就不介绍了,可以发我邮箱,我会尽力解释,整理后会一并发出。

    一、下载 Typora

  • 官网下载,忘了使试用版的是试用多久,配置方法都是是一样的
  • 由于这个软件很好用,还是买断制的,推荐购买。
  • 其它安装方法不作介绍。
  • 二、配置阿里oss

    可以先买个标准存储包,9元。 外网访问用按量计费就行(默认的),不用买。我就自己用,一天一分钱,还是很划算的。

  • 打开 阿里云官网 ,需要登录(可以使用支付宝扫码登录)
  • 直达 购买链接 ,或 产品 --> 搜索输入:“OSS” --> 对象存储OSS --> 立即购买
  • OOS资源包 标准本地冗余存储 (用于抵扣数据存储的空间),其它的参考图片选择
  • 打开Mac的终端,输入命令:

    sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash

    若没有终端报错,即为成功。

    如果报错就看官方文档

    五、配置 ossutil

    配置config

    ossutil config

    首次安装可以直接按回车,ossutil默认使用 /Users/user/.ossutilconfig 作为配置文件

    CH EN

    指定ossutil的语言,工具使用的语言默认与操作系统保持一致。该配置项将在此次config命令设置成功后生效。

    根据提示输入 Endpoint AccessKey ID AccessKey Secret STSToken 参数

    ==看提示==,使用STS临时授权账号访问OSS时需要配置 STSToken ,否则置空即可,简单来说就是自己用不需要配,直接回车。

    输入 ossutil 验证是否安装成功

    如果安装成功了,会显示相应的命令

    如果没有安装成功,重新配置config即可(输入 ossutil config ),注意检查是否有空格,或者误把换行符也输入了,导致不知情地按下回车键,结果意外退出配置进程

    系统 binary名称
    Linux 64位 ./ossutil64
    Linux 32位 ./ossutil32
    Windows 64位 ossutil64.exe
    Windows 32位 ossutil32.exe
    MacOS 64位 ./ossutilmac64
    MacOS 32位 ./ossutilmac32
    ARM 64位 ./ossutilarm64
    ARM 32位 ./ossutilarm32

    我使用的是 ossutil 命令

    ==可以命令叠加使用==

    ossutil sign oss://my-markdown/test.txt --timeout 3600 --trafic-limit 838860800

    将生成一个超时时间为3600秒限制访问速度为100Mb/s的URL【见(六)2和(六)3】

    ./ossutil config 
    [-e,--endpoint <value>] #填写Bucket所在地域的域名信息,详情请参见访问域名和数据中心。您也可以增加http://或https://指定ossutil访问OSS使用的协议,默认使用HTTP协议。
    [-i,--access-key-id <value>]  #指定配置文件中Credentials选项下的AccessKey ID。有关如何查看AccessKey ID信息的具体步骤,请参见获取AccessKey。
    [-k,--access-key-secret <value>]  #指定配置文件中Credentials选项下的AccessKey Secret。有关如何查看AccessKey Secret信息的具体步骤,请参见获取AccessKey。
    [-t,--sts-token <value>]  #访问OSS使用的STSToken,仅在使用STS临时授权方式访问OSS时需要配置此项。有关如何生成STSToken的具体步骤,请参见临时访问凭证。
    [--ram-role-arn <value>]  #RamRoleArn鉴权模式下的RAM角色ARN。仅在使用RAM用户的AssumeRole的方式访问时需要配置此项。
    [-L language <value>]  	#设置ossutil工具的语言。取值如下:
    												#CH(默认值):中文。设置为CH时,请确保您的系统编码方式为UTF-8。
    												#EN:英文。
    [--output-dir <value>]  #指定输出文件所在的目录,输出文件目前包含cp命令批量拷贝文件出错时所产生的report文件。
    												#默认值:当前目录下的ossutil_output目录。
    [-c,--config-file <value>] 	#ossutil工具的配置文件路径,ossutil启动时将从配置文件读取配置。
    
    ./ossutil64 config
    请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。
    如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径): 
    未输入配置文件路径,将使用默认配置文件:/home/user/.ossutilconfig。 
    对于下述配置,回车将跳过相关配置项的设置,配置项的具体含义,请使用"help config"命令查看。 
    请输入endpoint:https://oss-cn-shenzhen.aliyuncs.com 
    请输入accessKeyID:yourAccessKeyID 
    请输入accessKeySecret:yourAccessKeySecret
    请输入stsToken:yourStsToken
    

    ossutil config -e oss-cn-beijing.aliyuncs.com -i LTAIbZcdVCmQ**** -k D26oqKBudxDRBg8Wuh2EWDBrM0**** -L CH -c /myconfig

    如果您使用命令时输入了除-L language和-c,--config-file以外的任意选项,则进入非交互式模式,所有的配置项需使用选项来指定。

    (二)输出文件内容cat

    ossutil cat oss://bucketname/objectname [--payer <value>] [--version-id <value>]

  • bucketname Bucket名称
  • objectname Object名称
  • --payer 请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester
  • --version-id Object的指定版本。仅适用于已开启或暂停版本控制状态Bucket下的Object。
  • ossutil cat oss://examplebucket/test.txt 将未开启版本控制的目标存储空间examplebucket内名为test.txt的文件内容输出到屏幕

    ossutil64 cat oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3**** 将已开启版本控制的目标存储空间examplebucket内名为exampleobject.txt文件的指定版本内容输出到屏幕

    (三)创建Bucket mb

    Bucket可以理解成存储空间

    oosutil mb oss://Bucket名称

    oosutil mb oss://my-markdown ==以下将使用此路径为例==

    b.下载文件名中包含abc但不是JPGTXT的文件--include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r

    ossutil cp oss://my-markdown/ 本地路径 --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r

    ossutil cp oss://my-markdown/ /User/UserName/Dektop/ --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r

    下载my-markdown/下所有名称中包含abc但不是JPGTXT的文件到/User/UserName/Dektop/

    ossutil cp oss://my-markdown/test.txt /Users/UserName/Desktop/test/ --snapshot-path=/Users/UserName/Desktop/test/shot/

    下载test.txt文件到/Users/UserName/Desktop/test/,同时把快照保存在/Users/UserName/Desktop/test/shot/

    5. 在已开启版本控制的Bucket内下载指定版本文件--version-id

    已开启版本控制

    下载指定版本文件

    开启版本控制

    跳转到“查询文件的versionid”

    来自“查询文件的versionid”的返回

    ossutil64 cp -r oss://my-markdown/文件名 本地路径/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****

    ossutil64 cp -r oss://my-markdown/test.txt /Users/UserName/Desktop/test/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****

    下载test.txt文件的CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****版本到/Users/UserName/Desktop/test/目录下

    当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret

    [查询Endpoint]

    [查询AccessKey ID]

    [查询AccessKey Secret]

    ossutil cp oss://markdown/test.txt 本地路径/ -e 指定的Endpoint -i AccessKey_ID -k AccessKey_Secret

    ./ossutil64 cp oss://examplebucket/exampleobject.txt localfolder/ -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****

    将另一个阿里云账号下,华东2(上海)地域下存储空间examplebucket根目录下的文件exampleobject.txt下载至本地目录localfolder下,

    ossutil64 rm oss://examplebucket/exampleobject.txt

    前缀匹配删除

    ./ossutil64 **rm** oss://examplebucket/test -r

    后缀匹配删除

    ossutil64 **rm** oss://examplebucket --include "*.png" -r

    包含字符删除

    ossutil64 **rm** oss://examplebucket --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r

    删除置顶文件版本

    ossutil64 **rm** oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****

    删除已开启版本控制的文件的所有版本。

    ossutil64 rm oss://examplebucket/exampleobject.txt --all-versions

    删除已开启版本控制的examplebucket下所有Object的所有版本

    ossutil64 rm oss://examplebucket --all-versions -r

    (八) 生成签名URL sign

    1. 生成默认参数的URL

    ossutil sign oss://mielgo-markdown/文件名

    默认的超时时间为60

    ossutil sign oss://my-markdown/test.txt

    对目标文件oss://my-markdown/test.txt生成超时时间为60秒的文件签名URL。(如果成功,系统将返回一个URL,任何人都可以使用这个链接下载你所生成URL的这个文件)

    2. 指定超时时间

    当前时间戳与签名URL的过期时间之和不能超过9223372036854775807,否则会溢出报错。例如,当前时间戳为1643341269,则签名URL过期时间最大不能超过9223372035211434538

  • Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
  • 时间戳在线转换_1
  • 时间戳在线转换_2
  • ossutil sign oss://my-markdown/test.txt --trafic-limit 838860800

    对目标文件oss://my-markdown/test.txt生成限定其访问速度为100MB/s的URL

    4. 对文件的指定版本生成URL--version-id

  • ossutil sign oss://mielgo-markdown/文件名 --version-id id名称
  • ossutil sign oss://my-markdown/test.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****

    对目标文件oss://my-markdown/test.txtCAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****版本生成URL

    (九)创建目录mkdir

    ossutil64 **mkdir** oss://bucketname/dirname [--encoding-type <value>]

  • dirname 创建的目录名称。目录名称须以正斜线(/)结尾。若未添加正斜线(/),ossutil会在目录末尾自动添加。
  • --encoding-type 对oss://bucket_name后面的key(目录名称)进行编码,取值为url。如果不指定该选项,则表示目录名称未经过编码。
  • 创建单级目录

    ossutil mkdir oss://examplebucket/dir/

    创建多级目录

    ossutil mkdir oss://examplebucket/Photo/2021/

    如果误删除了2021/目录,且上一级目录Photo/下文件个数为0,则Photo/目录也会被自动移除。

    (十)版本控制bucket-versioning

    版本控制是针对存储空间(Bucket)级别的数据保护功能。开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。在对象(Object)被错误覆盖或者误删除后,您可以将Bucket中存储的Object恢复至任意时刻的历史版本。本文介绍通过bucket-versioning命令设置或获取版本控制状态。

    默认情况下,Bucket版本控制状态为“未开启”。一旦Bucket开启了版本控制,将无法返回至“未开启”状态。但是,您可以暂停Bucket版本控制。

  • 在开启版本控制的Bucket中上传文件的行为与未开启版本控制状态下的上传行为一致。但Bucket开启版本控制后,OSS会为新上传至Bucket的Object生成全局唯一的versionID。详情请参见cp(上传文件)
  • 开启Bucket的版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。您可以通过指定versionID的方式下载指定版本Object,详情请参见cp(下载文件)。您还可以通过指定versionID的方式将Object恢复至任意时刻的历史版本,详情请参见cp(拷贝文件)
  • 设置版本控制状态

    ossutil bucket-versioning --method put oss://BucketName versioning

    BucketName待设置版本控制状态的目标Bucket名称

    versioning为目标Bucket设置版本控制状态,参数如下

    enabled:开启版本控制

    当Bucket处于开启版本控制状态时,OSS将为新上传的Object生成全局唯一的随机字符串版本ID

    ossutil bucket-versioning --method put oss://my-markdown enabled

    (十一)防盗链referer

    对象存储OSS支持对存储空间(Bucket)设置防盗链,即通过对访问来源设置白名单的机制,避免OSS资源被其他人盗用。referer命令用于添加、修改、查询、删除Bucket的防盗链配置。

    ossutil referer --method put oss://bucketname refererconfig [--disable-empty-referer]

    refererconfig

    填写域名或IP地址,支持通配符星号(*)和问号(?),多个Referer需以空格分隔。配置示例如下:

  • 配置为www.aliyun.com时,可匹配www.aliyun.com/123、www.aliyun.com.cn等以www.aliyun.com为前缀的地址。
  • 配置为*www.aliyun.com/,可匹配www.aliyun.com/和https://ww…
  • 通配符星号(*)表示使用星号代替0个或多个字符。例如配置为*.aliyun.com,可匹配help.aliyun.com、www.aliyun.com等地址。
  • 通配符问号(?)表示使用问号代替一个字符。
  • 支持带端口的域名或IP,例如www.example.com:8080、10.0.0.0:8080等地址。
  • --disable-empty-referer

    选择是否允许空Referer。

  • 不添加此选项时,表示允许空Referer,即HTTP或HTTPS Header中不带Referer字段或Referer字段为空。
  • 添加此选项后,表示不允许空Referer,即HTTP或HTTPS Header中包含Referer字段的请求才能访问OSS资源。
  • 查看防盗链配置

    ossutil64 referer --method get oss://bucketname [local_xml_file]

  • bucketname 待获取防盗链配置的Bucket名称。
  • local_xml_file 存放防盗链配置的本地文件名称,例如localfile.txt。如果未指定此参数,则防盗链配置将直接输出到屏幕。
  • 删除防盗链配置

    ossutil referer --method delete oss://bucketname

    (十二)获取大小du

    ossutil du oss://bucketname[/prefix] [--payer requester] [--all-versions][--block-size <value>]

  • prefix Bucket下的某个文件目录或指定前缀。
  • --payer 请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester。
  • --all-versions 获取所有版本Object的大小。不添加此选项时,默认查询当前版本Object的大小。
  • --block-size 定义输出结果中指定Bucket或目录下包含的Object大小,取值为KB、MB、GB或TB。不添加此选项时,默认以Byte为单位统计Object的大小。
  • 查询指定Bucket下所有版本Object的大小

    ossutil64 du oss://examplebucket --all-versions

    查询指定目录下所有当前版本Object的大小

    ossutil64 du oss://examplebucket/dir/ --block-size GB 查询examplebucket内指定目录dir下的当前版本Object大小,Object大小以GB为单位进行统计

    查询与前缀匹配的所有版本Object的大小

    ossutil64 du oss://examplebucket/test --all-versions --block-size KB 查询目标存储空间examplebucket下与前缀test匹配的所有版本Object的大小,Object大小以KB为单位进行统计

    (十三)通用选项

    当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。

    例如您需要为另一个阿里云账号下,华东1(杭州)名为examplebucket的存储空间开启版本控制/,命令如下:

    ossutil64 bucket-versioning--method put oss://examplebucket enabled -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****

    (十四)bucket其它操作

    显示帮助信息

    -h--help

    -u--update

    仅返回当前目录下的文件和子目录

    -d --directory

    通过使用文件URL下载目标文件到本地的方式探测本地和目标Bucket之间的网络状态

    -download

    表示HTTP的请求类型,

    --method 取值为PUTGETDELETE等。

    指定输出文件所在的目录

    --output-dir 输出文件目前包含cp命令批量拷贝文件出错时所产生的report文件 默认值:当前目录下的ossutil_output目录。

    返回结果的最大个数

    --limited-num

    设置ossutil工具的语言

    -L --language 取值如下:

  • CH(默认值):中文。设置为CH时,请确保您的系统编码方式为UTF-8。
  • EN:英文。
  • 删除Bucket、Object或碎片操作

    --delete

    仅在删除Bucket时使用此选项

    -b --bucket

    强制操作,不进行询问提示

    -f--force

    获取Bucket名称

    --bucketname

    对oss://bucket_name后面的key进行编码

    --encoding-type 取值为url,如果不指定该选项,则表示key未经过编码。

    不对URL中的正斜线(/)进行编码

    --disable-encode-slash

    指定HTTP的访问速度

    --trafic-limit 用于sign命令中。单位为bit/s。 默认值:0,表示不限速。 取值范围:819200838860800,即100 KB/s100 MB/s。

    指定IP地址访问OSS

    --local-host cp命令中用于指定ossutil工具的本地IP地址。指定该选项后,ossutil将通过指定IP地址访问OSS

    上传链接子目录

    --enable-symlink-dir 默认不上传。probe命令可以探测是否存在死循环链接文件或者目录。

    仅上传、下载、拷贝当前目录下的文件,忽略子目录及子目录下的文件

    --only-current-dir

    probe命令的探测项目

    --probe-item 取值如下: upload-speed:探测上传带宽。 download-speed:探测下载带宽。 cycle-symlink:探测本地文件目录中是否存在死循环链接文件或者目录。

    同步文件到本地

    sync命令与cp命令的区别 sync命令强制以递归的方式遍历指定文件夹内所有文件或子文件夹。cp命令需增加-r选项才会进行递归操作。 通过sync命令将数据同步到OSS时,ossutil支持通过--delete选项将目的端存在而源端不存在的文件都删除,仅保留本次同步的文件。cp命令不支持--delete选项。 sync不支持--version-id选项,无法在已开启版本控制的Bucket内同步历史版本文件。cp命令支持--version-id选项。

    ossutil sync file_url cloud_url
    [-f --force]
    [-u --update]
    [--delete]
    [--enable-symlink-dir]  #同步链接子目录
    [--disable-all-symlink]  #同步目录时,忽略所有的链接子文件以及链接子目录。
    [--disable-ignore-error]  #批量操作时不忽略错误。
    [--only-current-dir]   #仅同步当前目录下的文件,忽略子目录及子目录下的文件。
    [--output-dir <value>]  #指定输出文件所在的目录。输出文件是指批量同步文件出错时产生的report文件,默认保存在当前目录下的ossutil_output目录。
    [--bigfile-threshold <value>]  	#设置断点续传文件的大小阈值,单位为字节。
    																#默认值:100 MB
    																#取值范围:0~9223372036854775807
    [--part-size <value>]		#设置分片大小,单位为字节。
    												#默认情况下ossutil会根据文件大小自行计算合适的分片大小值。
    												#取值范围:1~9223372036854775807
    [--checkpoint-dir <value>]  #指定断点续传记录信息所在的目录。断点续传操作失败时,ossutil会自动创建名为.ossutil_checkpoint的目录,并在该目录下记录checkpoint信息,断点续传成功后会删除该目录。如果通过该选项指定了目录,请确保指定的目录可以被删除。
    [--encoding-type <value>]
    [--snapshot-path <value>]
    [--include <value>]
    [--exclude <value>]
    [--meta <value>]
    [--acl <value>]  	#文件的读写权限ACL。取值如下:
        							#default:继承Bucket的读写权限。
    									#private(默认值):只有该Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件。
    									#public-read:只有Bucket拥有者可以对该Bucket内的文件进行写操作,其他用户(包括匿名访问者)都可以对该Bucket中的文件进行读操作。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可能会侵害您的合法权益。除特殊场景外,不建议您配置此权限。
    									#public-read-write:任何人(包括匿名访问者)都可以对该Bucket内文件进行读写操作。这有可能造成您数据的外泄以及费用激增,请谨慎操作。
    [--maxupspeed <value>]  #最大上传速度,单位为KB/s。默认值为0,表示不限制上传速度。
    [--disable-crc64]
    [--payer <value>]
    [-j, --job <value>]
    [--parallel <value>]
    [--retry-times <value>]  #发生错误后的重试次数。默认值为10,取值范围为1~500。
    [--tagging <value>]  #文件的标签信息,格式为TagkeyA=TagvalueA&TagkeyB=TagvalueB....。
    

    file_url:待同步的本地文件夹路径。例如Linux系统文件路径/localfolder/,Windows系统文件路径D:\localfolder\

    cloud_url: OSS文件夹路径。格式为oss://bucketname/path/。例如oss://examplebucket/exampledir/。如果输入的cloud_url没有以正斜线(/)结尾,ossutil会自动在结尾处添加一个正斜线(/)。

    文件元信息

    ossutil64 set-meta oss://bucketname[/prefix]   # /prefix: Bucket下的资源,例如目录、文件等。
    [header:value#header:value...]
    [--update]  #更新文件元信息。该选项可简写为-u,且不能与--delete选项同时使用。
    [--delete]  #删除文件元信息。该选项不能与--update选项同时使用。
    [-r,--recursive]  #如果指定该选项时,ossutil将为所有与prefix匹配的文件设置元信息。如果不指定该选项,则ossutil只为指定文件设置元信息。
    [-f, --force]  #强制操作,不进行询问提示。
    [--object-file, <value>]  #该选项用于批量设置、更新或删除多个Object的元信息。使用该选项的步骤如下:
    													#您需要指定.txt或者XML格式的本地文件,并在本地文件中换行填写所有待设置、更新或删除元信息的Object。
    													#ossutil读取本地文件中的所有Object,然后对这些Object进行元信息的设置、更新或删除操作。
    [--snapshot-path, <value>]  #如果指定该选项,则只对本次操作的Object生成快照。如果操作的Object已经存在快照信息,则忽略本次操作。
    [--disable-ignore-error] #批量操作时不忽略错误。
    [--version <value>] #Object的指定版本。仅适用于已开启或暂停版本控制状态Bucket下的Object。
    [--include <value>]  #包含符合指定条件的所有Object。
    [--exclude <value>]  #不包含符合指定条件的所有Object。
    

    thanks