刷qq群偶然发现了教育网联邦认证与资源共享基础设施CARSI网站,里面有很多资源,登录学校账号可以看到学校购买的资源,还有一些免费可使用的资源。经过一番寻找,发现了OSCA联盟云存储网站.

OSCA 是一个提供云存储服务的联盟,可以简单理解为网盘,但是相比普通网盘有很多优势:

  • 提供开放接口,可编程(所以也可以使用s3客户端)
  • 容量大(大学生有1T空间)
  • 速度快(至少比某些网盘快得多)

下面简单介绍命令行使用方法.

awscli

笔者目前选择了轻量的awscli,安装方法推荐下载最新.zip包解压安装,参考amazon官网.

配置

然后使用 aws configure 命令进行配置,AWS Access Key ID 和 AWS Secret Access Key 最重要,填写osca网站给的AK和SK,Default region name 是AWS自己服务的服务器区域,可不填,Default output format 可填json.

然后编辑config文件,加入 endpoint_url = https://fgws3-ocloud.ihep.ac.cn .

然后使用 aws configure set default.s3.signature_version s3v4 命令配置签名,保证数据加密安全.

aws默认开启分块传输,由于不可知原因会出现超过8MB的文件使用 aws s3 cp 下载出现签名认证失败,可以通过调高配置 multipart_thresholdmultipart_chunksize 解决(deepseek查看具体配置作用)。下面贴出笔者的配置文件( ~/.aws/config ):

[default]
output = json
endpoint_url = https://fgws3-ocloud.ihep.ac.cn
s3 =
    signature_version = s3v4
    multipart_threshold = 64MB
    multipart_chunksize = 16MB
    max_concurrent_requests = 8

使用

查看osca的bucket

aws s3 ls

查看osca的bucket的文件和目录

aws s3 ls s3://bucket-name/

将本地文件移动到bucket

aws s3 mv local.txt s3://bucket-name/

将本地文件夹递归移动到bucket

aws s3 mv /local/dir/ s3://bucket-name/ --recursive

将本地文件夹 /local/dir/内的文件 同步到bucket的dir中,并排除子文件夹和单个文件

aws s3 sync /local/dir/ s3://bucket-name/dir/ --exclude "/local/dir/subdir/*" --exclude "/local/dir/file"