Total Pageviews

Saturday, 10 July 2021

Transfer,集合多个API的大文件传输工具

  

 

🍭集合多个API的大文件传输工具

Large file transfer tool with multiple file transfer services support

note

部分API可能不是很稳定,如有问题可以及时提issue或者pr

如使用过程中出现任何问题可以先尝试使用beta版程序,说不定已经修复过了这个bug

install

Go语言程序, 可直接在发布页下载使用。

或者使用安装脚本:

# Stable Release
curl -sL https://git.io/file-transfer | sh 

# Beta Release
curl -sL https://git.io/file-transfer | bash -s beta

Beta即为实时构建版本,不一定能正常运行,仅建议用作测试。

support

目前支持的文件传输服务:

NameSiteLimit
Airportalhttps://aitportal.cn/-
CatBoxhttps://catbox.moe/200MB
CowTransferhttps://www.cowtransfer.com/2GB
Fileiohttps://file.io/100MB
GoFilehttps://gofile.io/-
Vim-cnhttps://img.vim-cn.com/100MB
WeTransferhttps://wetransfer.com/2GB
WhiteCatshttp://whitecats.dip.jp/60s/file
Transfer.shhttps://transfer.sh/-
LitterBoxhttps://litterbox.catbox.moe/1GB
Lanzoushttps://www.lanzous.com/login
Notionhttps://www.notion.so/login

部分服务仅支持上传;部分服务需要使用beta版本。

notion上传相关说明

登陆上传相关说明

目前支持的图床服务:

baidu(bd), ccupload(cc), prntscr(pr), smms(sm), sogou(sg), 
toutiao(tt), vimcn(vm), suning(sn), telegraph(tg)

usage

Transfer is a very simple big file transfer tool.

Backend Support:
  airportal(arp), catbox(cat), cowtransfer(cow), fileio(fio),
  gofile(gof), lanzous(lzs), litterbox(lit), null(0x0), 
  wetransfer(wet), vimcn(vim)

Usage:
  transfer [flags]
  transfer [command]

Examples:
  # upload via wenshushu
  ./transfer wss <your-file>

  # download link
  ./transfer https://.../

Available Commands:
  decrypt     Decrypt a file
  encrypt     Encrypt a file
  hash        Hash a file
  help        Help about any command
  image       Upload a image to imageBed

Flags:
      --encrypt              encrypt stream when upload
      --encrypt-key string   specify the encrypt key
  -f, --force                attempt to download file regardless error
  -h, --help                 help for transfer
      --keep                 keep program active when process finish
      --no-progress          disable progress bar to reduce output
  -o, --output string        download to another file/folder (default ".")
  -p, --parallel int         set download task count (default 3)
      --silent               enable silent mode to mute output
  -t, --ticket string        set download ticket
      --verbose              enable verbose mode to debug
      --version              show version and exit

Use "transfer [command] --help" for more information about a command.

upload & download

所有上传操作都建议指定一个API,如不指定将使用默认(filelink.Backend)。加上想要传输的文件/文件夹即可。


Upload a file or folder.

Usage:
  transfer [flags] <files>

Aliases:
  upload, up

Flags:
      --encrypt              Encrypt stream when upload
      --encrypt-key string   Specify the encrypt key
  -h, --help                 help for upload

Global Flags:
      --no-progress          disable progress bar to reduce output
      --silent               enable silent mode to mute output
      --keep                 keep program active when process finish
      --version              show version and exit

Use "transfer upload [command] --help" for more information about a command.

Examples

# upload
./transfer balabala.mp4

# upload
./transfer wss balabala.mp4

# upload folder
./transfer wet /path/

不同的Backend提供不同的选项,可以在帮助中查看关于该服务的相关信息。

➜  ./transfer cow
cowTransfer - https://cowtransfer.com/

  Size Limit:             2G(Anonymous), ~100G(Login)
  Upload Service:         qiniu object storage, East China
  Download Service:       qiniu cdn, Global

Usage:
  transfer cow [flags]

Aliases:
  cow, cow, cowtransfer

Flags:
      --block int         Upload block size (default 262144)
  -c, --cookie string     Your user cookie (optional)
      --hash              Check hash after block upload
  -h, --help              help for cow
  -p, --parallel int      Set the number of upload threads (default 2)
      --password string   Set password
  -s, --single            Upload multi files in a single link
  -t, --timeout int       Request retry/timeout limit in second (default 10)

Global Flags:
      --encrypt              encrypt stream when upload
      --encrypt-key string   specify the encrypt key
      --keep                 keep program active when process finish
      --no-progress          disable progress bar to reduce output
      --silent               enable silent mode to mute output
      --verbose              enable verbose mode to debug
      --version              show version and exit

下载操作会自动识别支持的链接,不需要指定服务名称。

# download file
./transfer https://.../

试验性功能:--encrypt选项可以在上传时将文件加密,下载时需要配合--decrypt选项才能正确下载文件。(当然也可以先下载后再解密)加密方式为AES-CBC,默认会自动生成一个密码,也可以通过--encrypt-key指定一个。

# encrypt stream when upload
➜ ./transfer wss --encrypt transfer
Warning: crypto mode is enabled.
Note: Crypto mode still in beta and abnormalities may occur, do not over-rely on this function.
Key is not set or incorrect: Setting it to 94d0500605b372245dc77f95fbc20010
...

# encrypt with key
➜ ./transfer wss --encrypt --encrypt-key=123 transfer
Warning: crypto mode is enabled.
Note: Crypto mode still in beta and abnormalities may occur, do not over-rely on this function.
Encrypt using key: 123
...

# decrypt stream when download
➜ ./transfer --encrypt --encrypt-key=123 https://....
Warning: crypto mode is enabled.
Note: Crypto mode is not compatible with multi thread download mode, setting parallel to 1.
...

notion

notion的上传需要以下参数

所有参数不带符号,即形如ce6ad860c0864286a4392d6c2e786e8即可。

-p Page ID

必须,即页面链接中的那个一大长串的ID。建议直接使用Workspace的次级页面作为上传目标以便程序能自动获取当前Workspace ID,否则需要通过 -s 参数指定 Space ID。

-t token

必须,即cookie中的www.notion.so -> token_v2项。

-s Workspace ID

非必须,适用于非次级页面/嵌套的情况,手动设定Workspace ID

上传后默认返回一个自动签名链接,私有页面可以在浏览器登录状态下直接点击下载。对于公开页面的文件链接,可以尝试去掉userid使用,但必须保留id和table两项。

Example

❯ ./transfer not -p ... -t ... install.sh        
Local: /.../install.sh
1.03 KiB / 1.03 KiB [--------------------] 100.00% 810 B p/s 2s
syncing blocks....
Download Link: https://www.notion.so/signed/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F...%2Finstall.sh?table=block&id=...&name=install.sh&userId=...&cache=v2

login

部分backend支持登陆环境下上传,使用时只需要提供对应的cookie即可。

CowTransfer

# login to upload
./transfer cow --cookie="remember-me=...;" file

AirPortal

# login to upload
./transfer arp -t <your-token> -u <your-username> file

TmpLink

# login to upload
./transfer tmp -t <your-token> file

Lanzous

蓝奏云可以只使用phpdisk_info项作为cookie上传文件,但可能无法进行文件管理(如删除等)。如需要上传到指定目录或进行文件管理操作需要在cookie中指定folder_id_c的值,如:

# login to upload (without path)
./transfer lzs --cookie='phpdisk_info=...' file

# login to upload (with path)
./transfer lzs --cookie='phpdisk_info=...; folder_id_c=...;' file

image

transfer也支持上传图片至图床,默认自动使用阿里图床上传,也可以通过-b, --backend指定图床。


Upload a image to imageBed.
Default backend is ali.backend, you can modify it by -b flag.

Backend support:
  alibaba(ali), baidu(bd), ccupload(cc), juejin(jj),
  netease(nt), prntscr(pr), smms(sm), sogou(sg),
  toutiao(tt), xiaomi(xm), vimcn(vm), suning(sn)

Example:
  # simply upload
  transfer image your-image

  # specify backend to upload
  transfer image -b sn your-image

Note: Image bed backend may have strict size or format limit.

Usage:
  transfer image [flags]

Flags:
  -b, --backend string   Set upload/download backend
  -h, --help             help for image

Global Flags:
      --encrypt              encrypt stream when upload
      --encrypt-key string   specify the encrypt key
      --keep                 keep program active when process finish
  -v, --verbose              enable verbose mode to debug
      --version              show version and exit

encrypt & decrypt

和前面upload使用的是同样的加密,只是在本地进行。也可以使用前面下载的加密后文件在此解密。可以通过不同参数指定密钥和输出文件名

关于加密的说明:目前只能选择AES-CBC的加密方式,分块大小策略为min(1m, fileSize)

# encrypt
transfer encrypt your-file

# encrypt using specified key
transfer encrypt -k abc your-file

# decrypt using specified key
transfer decrypt -k abc your-file

# specify path
transfer encrypt -o output your-file

hash

hash功能使用sha1, crc32, md5, sha256对文件进行校验,可以用来检验文件一致性。

➜  ./transfer hash main.go
size: 68
path: /../transfer/main.go

crc32: a51da8f5
md5: aa091bb918ab85b1dc44cb771b1663d1
sha1: a8e25d41330c545da8bcbeade9aebdb1b4a13ab7
sha256: ab4dd3cdd79b5e2a88fcb3fcd45dfcffc935c913adfa888f3fb50b324638e958
from https://github.com/Mikubill/transfer
----
Simple Cowtransfer Uploader/Downloader in Golang.

cowTransfer-uploader

 

Simple cowTransfer Uploader/Downloader

上传/下载文件到奶牛快传的小工具,支持分块并发上传下载

install

Go语言程序, 可直接在发布页下载使用。

linux的小伙伴也可以使用这个命令来下载:

curl -sL https://git.io/cowtransfer | sh 

usage

在cowtransfer-uploader后加上想要上传的文件/文件夹即可上传,可以手动修改parallels来提高上传并发数。

# upload
./cowtransfer-uploader balabala.mp4

# upload folder
./cowtransfer-uploader /usr

# faster upload(?)
./cowtransfer-uploader -p 12 balabala.mp4

对于某些需要登陆的环境,可以使用cookie登陆。经测试发现只需要remember-me单项的内容即可,即:

# login to upload
./cowtransfer-uploader -cookie="remember-me=...;" file

程序默认会为每一个文件生成一个链接。如果想一个链接上传所有文件,可以使用选项-s开启Single Upload Mode:

# single upload mode
./cowtransfer-uploader -s /usr

在cowtransfer-uploader后加上文件分享链接即可下载,可以手动修改parallels来提高下载并发数。

# download
./cowtransfer-uploader https://c-t.work/s/c855d66abd524b

# faster download(?)
./cowtransfer-uploader -p 8 https://c-t.work/s/c855d66abd524b

程序默认不对数据进行校验(一般情况下也不会出错),如需要确保上传完整性可以使用选项--hash启用校验功能:

# hash
./cowtransfer-uploader --hash file

如需要添加密码可以使用选项--password设置想要的下载密码:

# password
./cowtransfer-uploader --password=123456 file

options

Usage:

  ./cowtransfer-uploader [options] file(s)/url(s)

Options:

  -c, --cookie string         Your User cookie (optional)
  -p, --parallel int          Parallel task count (default 4)
  -b, --block int             Upload Block Size (default 262144)
  -t, --timeout int           Request retry/timeout limit (in second, default 10)
  -o, --output string         File download dictionary/name (default ".")
  -s, --single                Single Upload Mode
  -v, --verbose               Verbose Mode
  -k, --keep                  Keep program active when upload finish
  --hash                      Check Hash after block upload (might slower)
  --password string           Set password
  --version                   Print version and exit

Note:

  • -c, --cookie 可选,可以直接不带任何选项上传文件。
  • -o, --output 指定下载文件的目录。(也可以使用-prefix指定)
  • -p, --parallel 上传/下载并发数,默认为4。如果觉得速度太慢也可以试试更高的值。
  • -t, --timeout 上传超时时间,默认为30秒。
  • -v, --verbose 开启详细日志,可以看到这个程序每一步都干了啥。
  • -k, --keep 在上传完毕后不立即退出,在某些情况下可能有用。
  • --hash 上传分块校验,开启后会对每一个分块进行上传校验以确保上传完整性。
  • --password 上传/下载密码设置。
  • --version 显示程序版本信息。

常见问题

  1. 进度条卡住了/速度太慢/速度为零

七牛云上传接口在某些情况下有可能不稳定,如确认网络正常可使用较低的超时时间重试,即:

./cowtransfer-uploader -t 3 file

缘起

写了acfun-uploader以后有小伙伴让我写一下cowtransfer的,感觉应该也差不多就摸了一个x

(其实完全是小伙伴催出来的qwq,不过奶牛这不按规则的上传处理有点感人2333)


from https://github.com/Mikubill/cowtransfer-uploader

------


由于工作需要,我常年有传输大文件的需求,也一直在寻找好用的文件分享工具;直到用了奶牛快传,良心工具必须爱上

直接划重点:

  1. 免费,上传下载不限速,上传文件大小数量均无限制 (免费的 10GB 云盘足够日常使用了)
  2. 不用安装客户端,网页端免登录直接一键下载,对下载方特别友好
  3. 可以设置链接有效期(支持一周到永久不等)和分享设置 (仅下载还是可预览)
  4. 整个产品设计感在线,视觉高级有美感

近期又官宣了 3.0 版 ,主要更新点如下:

  1. 提高了产品基础功能,文件分享更安全、更稳定
  2. 支持图片、音视频、文档等 56 种常见文件格式的在线预览,还包括 psd 等少见工程文件格式,极大方便了行业文件的传输;
  3. 云盘文件管理友好性大幅度提升,UI 焕然一新
  4. 上线了微信小程序,手机端也能随时随地分享.

https://cowtransfer.com/

-----


A small tool for uploading files to notion.

notion-uploader

Upload files to Notion.

上传文件到Notion的小工具。

Example

❯ ./notion-uploader -p ... -t ... install.sh        
Local: /.../install.sh
1.03 KiB / 1.03 KiB [--------------------] 100.00% 810 B p/s 2s
syncing blocks....
Download Link: https://www.notion.so/signed/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F...%2Finstall.sh?table=block&id=...&name=install.sh&userId=...&cache=v2

Parameters

-p Page ID

Required, the ID in the page link. It is recommended to directly use the secondary page of Workspace so that the program can automatically obtain the Workspace ID, otherwise, you need to specify the Space ID through the -s parameter.

-t token

Required, the www.notion.so -> token_v2 value in the cookie.

-s Workspace ID

Optional, applicable to non-secondary/nested pages, manually set Workspace ID


上传后默认返回一个自动签名链接,私有页面可以在浏览器登录状态下直接点击下载。对于公开页面的文件链接,可以尝试去掉userid使用,但必须保留id和table两项。

上传参数

所有参数不带符号,即形如ce6ad860c0864286a4392d6c2e786e8即可。

-p Page ID

必须,即页面链接中的那个一大长串的ID。建议直接使用Workspace的次级页面作为上传目标以便程序能自动获取当前Workspace ID,否则需要通过 -s 参数指定 Space ID。

-t token

必须,即cookie中的www.notion.so -> token_v2项。

-s Workspace ID

非必须,适用于非次级页面/嵌套的情况,手动设定Workspace ID.


from https://github.com/Mikubill/notion-uploader

------


跨平台传输文件 — 突破网速上限,干翻所有网盘

一、奶牛快传(网页端、安卓和iOS)以网页端为例

1.选择添加文件或添加文件夹;

2.选择好要上传的文件,选择下载的次数和加密传输,然后开始上传即可;

3.上传成功后,将获取下载链接、取件码或二维码分享

4.1你可以将下载链接复制至浏览器打开,即可下载该文件;

4.2或打开奶牛快传网页端,选择接受文件,输入取件码获取文件;

注意:奶牛快传为了更好地保护所上传的文件,可设置文件有效期,登录后还可查询文件传输历史;

如果你需要更好的用户体验,则需要开通PRO会员或团队会员,对于个人传输文件,免费版即可;

二、AirPortal空投(网页端和PC端)以网页端为例

区别于奶牛快传,”空投“的UI简直是深得我心,页面及其简单整洁,映入眼帘的只有发送与接收按钮;操作与坚果云类似;

1.选择要发生的文件或文件夹;

2.设置下载次数和可保存的小时候,然后点击上传即可;

3.上传成功后,将获取取件码、下载链接或二维码分享;

4.1你可以将下载链接复制至浏览器打开,即可下载该文件;

4.2或打开AirPortal空投网页端,选择接受文件,输入取件码获取文件;

注意:上述操作与PC端基本逻辑一致,也可登录账号查看文件传输历史或开通高级会员账号,获取更好的体验;

三、坚果云(PC+Mac+Linux+iOS+安卓)以网页端为例

区别于上述两款文件传输软件免登陆即可使用,坚果云则需要登录账号使用;

登录后,可上传文件,过程就不一一赘述了,跨平台传输文件的软件操作逻辑基本一致;

坚果云还拥有查看操作历史、回收站和给常用文件添加书签的功能,节省查找时间;

坚果云除了跨平台传输文件功能,还拥有在线office、思维导图、收件箱、云收、云扫描等诸多应用,感兴趣可自行体验;

使用体验

AirPortal空投和奶牛快传更适合分享一些文件或影视资源,如网课、电影视频、音乐、压缩包等;而这两款软件可以免注册、不限速传输文件;

而坚果云更多的可以用来同步不同设备之间的文件,毕竟坚果云支持的设备众多;

坚果云其实最重要的功能不是上传或下载一个文件或文件夹,而是事先可以将一个文件夹设置成为同步文件夹,该文件夹内新增、删除或修改内容,都会自动同步云端,并同步至其他设备;

资源获取地址:
奶牛快传:https://cowtransfer.com/
AirPortal空投:https://airportal.cn/
坚果云:https://www.jianguoyun.com/#/

No comments:

Post a Comment