V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SuperMild
V2EX  ›  分享创造

推荐两个免费、有 API、国内可直接访问的文件储存/分享服务(以及相关 Python 脚本)

  •  
  •   SuperMild ·
    ahui2016 · 2022-01-16 10:39:40 +08:00 · 3107 次点击
    这是一个创建于 1049 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第一个是 anonfiles.com

    优点:

    1. 免费
    2. 容量大
    3. 保存时间长
    4. 国内可直接访问
    5. 有 API (且非常非常简单易用)
    6. 匿名

    缺点:

    1. 只有上传 API, 没有获取文件列表、删除文件等 API
    2. 登录页面不稳定(经常打不开)

    第二个是 IBM Cloud 对象储存

    https://www.ibm.com/cloud/object-storage 优点:

    1. 有免费套餐
    2. 不需要登记信用卡
    3. 国内可直接访问
    4. 有 Smart Tier (一种方便好用且性价比高的计费方案)
    5. 有 API (并且有多种语言的 SDK)
    6. 功能强大

    缺点:

    1. 免费套餐有容量、次数的限制(每月恢复,一般够用,由于不登记信用卡因此超了也不怕产生费用)
    2. 声称用户不活动 30 天就有可能删除资料(虽然我试过不活动 1 年也没事)
    3. 设置比较麻烦

    安装相关 Python 脚本

    我写了几个脚本来方便上传文件,为了让脚本更容易管理、并且方便与压缩打包、加密等插件组合使用,我把脚本做成了 ffe 的插件,因此需要先安装 ffe (安装方法看这里: https://github.com/ahui2016/ffe/blob/main/docs/usage.md ) 但是当然也可以不安装 ffe, 参考源码稍稍修改一下就是个独立的脚本了。

    安装了 ffe 之后,用以下命令安装相关脚本:

    ffe install -i https://github.com/ahui2016/ffe/raw/main/recipes/anon-ibm.toml
    

    如果遇到网络问题,也可以使用 gitee 地址:

    ffe install -i https://gitee.com/ipelago/ffe/raw/main/recipes/anon-ibm-gitee.toml
    

    最后安装依赖 pip install pyperclip arrow humanfriendly ibm-cos-sdk

    完成。

    使用方法

    AnonFiles

    使用命令 ffe run -r anon file.txt 即可把 file.txt 匿名上传到 AnonFiles, 并且自动复制分享地址到剪贴板(也可设置不自动复制),任何人访问该分享地址均可下载文件。

    如果你注册了 AnonFiles 账号,可以获得一个 key, 使用命令 ffe info -r anon 可以查看设置 key 的方法。关于 ffe 使用方法的详细说明请看 https://github.com/ahui2016/ffe/blob/main/docs/usage.md

    IBM COS

    由于 IBM COS 的功能更强大,因此我为它写了两个脚本,其中一个专门负责上传。

    使用命令 ffe run -r ibm-upload file.txt 即可上传文件 file.txt, 根据默认设定,在 IBM COS 里会自动为该文件添加前缀,因此在 IBM COS 里的文件名是像这个样子的 20220114184907-file.txt

    由于对象储存对 “用文件名前缀进行检索” 进行了优化,因此后续可以非常方便地检索或删除某年、或某月、或精确到某天的全部文件。

    但要注意,使用 ibm-upload 之前需要注册 IBM Cloud 账号并设置 ibm_api_key_id 等相关信息,具体方法请使用命令 ffe info -r ibm-upload 查看(设置这些信息比较麻烦,有任何问题可以问我)。

    ibm-delete

    使用命令 ffe run -r ibm-delete 可以查看已经上传了多少文件,输出结果类似这样:

    recipe: ibm-delete
    Retrieving files summary...
    
    2022-01-13  2
    2022-01-14  3
    
    Total: 5 files
    

    使用命令 ffe run -r ibm-delete 20220113 -dry (注意一定要加 -dry)可以进一步查看具体的文件名。其中 20220113 意思是一月十三日的文件,也可以使用 202201 来指定一月的全部文件,或者用 2022011308 来指定 1 月 13 日 08:00 至 09:00 之间的文件,非常灵活。

    使用命令 ffe run -r ibm-delete 20220113 删除 IBM COS 里的文件,与上面查看文件名的命令的差别只是没有 -dry, -dry 在 ffe 里是 dry run 的意思,用来预估执行结果。

    组合拳

    ffe 的各个插件可以灵活组合使用。

    使用命令 ffe dump -r anon file.txt > anon.toml 可以生成一个 TOML 文件,里面可以编辑各项参数。

    把多个任务的 TOML 内容复制到一个文件里,就可以形成一个组合,比如:

    [[tasks]]
    recipe = "tar-xz"  # 第一个任务:打包压缩
    names = [
      'file1.txt',
      'file2.txt',
    ]
    [tasks.options]
    output = "files"
    auto_wrap = true
    zip_overwrite = false
    
    [[tasks]]
    recipe = "anon"    # 第二个任务:匿名上传
    names = [
      'files.tar.xz',
    ]
    [tasks.options]
    auto_copy = true
    key = ""
    

    然后使用命令 ffe run -f tar-anon.toml 即可一次性完成打包和上传。这个方法适用于一些需要经常重复操作的事情,写好 TOML 文件后就可以轻松打出一套组合拳。

    第 1 条附言  ·  2022-01-16 11:25:09 +08:00
    实在抱歉,我没确认最新情况,现在注册 IBM Cloud 要求信用卡和手机号了,但选择 COS Lite Plan 按理说是不会产生费用的(超了免费额度最多不让用,不会收费,说是这样说)。
    第 2 条附言  ·  2022-01-16 11:30:02 +08:00

    还发现正文写错了一个地方 “用户不活动30天”,应该是“免费用户不活动30天”

    本文的最新修订版请看 https://github.com/ahui2016/ffe/blob/main/docs/anon-ibm.md

    6 条回复    2022-01-18 19:14:33 +08:00
    gitbay
        1
    gitbay  
       2022-01-16 10:59:56 +08:00
    第二个需要信用卡验证
    SenLief
        2
    SenLief  
       2022-01-16 11:03:02 +08:00
    IBM 的在国内访问速度如何?
    SuperMild
        3
    SuperMild  
    OP
       2022-01-16 11:07:45 +08:00
    @gitbay 我以前注册,现在正在用,一直为填过信用卡信息。也许现在注册需要,我注册个新账号试试看

    @SenLief 我这边(广东电信)感觉不快也不慢,没测过速。
    SuperMild
        4
    SuperMild  
    OP
       2022-01-16 11:22:43 +08:00
    @gitbay 确实是变了,现在需要了,我登录旧帐号去看,确认了旧的还没登记信用卡,但允许我继续用。
    qyvlik
        5
    qyvlik  
       2022-01-17 15:36:14 +08:00
    有一个站点 https://bayfiles.com 看起来像 https://anonfiles.com 的镜像站。不过 bayfiles.com 不支持注册。
    Showfom
        6
    Showfom  
       2022-01-18 19:14:33 +08:00
    @qyvlik #5 一家的,都是海盗湾旗下的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:33 · PVG 14:33 · LAX 22:33 · JFK 01:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.