Closed OHLIA closed 5 years ago
TODO。
在 2018年4月11日,上午1:31,OHLIA notifications@github.com 写道:
onedrivecmd [OPTIONS] put /tmp/hello.txt od:/bar/ 上传
这条命令能否直接改为
onedrivecmd [OPTIONS] put /tmp/ od:/bar/
来上传tmp目录全部文件?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/cnbeining/onedrivecmd/issues/24, or mute the thread https://github.com/notifications/unsubscribe-auth/ABfRgqpCQiDxW2NBTFxIItX-cm1BWKOsks5tnZUvgaJpZM4TPZXT.
还有个问题, 传输文件到onedrive时候,VPS 1G 内存被吃满是怎么回事? 不过幸亏文件还能继续传送完毕。(在用RCLONE时候吃满内存就会被killed,导致传送失败还不能断点续传。)
因为onedrivecmd其实是写给服务器用的 我默认服务器的口子不会小于百兆 千兆共享也是有可能的 所以默认的chunk设了个极大的数字。(相比直接 隔壁的gdrive设的就很保守。)
巨大的chunk会吃掉极大的内存 因为我的目的是尽可能用光上传带宽 考虑到绝大多数情况下上传带宽是共享的 那么我需要特别aggressive的设置才能抢得过其他小鸡。
当然了 核心问题是:我写code从不管内存 如果我管内存 那我就换语言了是不是。。。
(也有可能是requests的性能问题 这个我就不好debug了。)
在 2018年4月11日,上午2:42,OHLIA notifications@github.com 写道:
还有个问题, 传输文件到onedrive时候,VPS 1G 内存被吃满是怎么回事? 不过幸亏文件还能继续传送完毕。(在用RCLONE时候吃满内存就会被killed,导致传送失败还不能断点续传。)
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cnbeining/onedrivecmd/issues/24#issuecomment-380344590, or mute the thread https://github.com/notifications/unsubscribe-auth/ABfRgqukn6lwwzomOaHjcTrb9K34YOvIks5tnaXMgaJpZM4TPZXT.
我提个想法, 上传目录的功能:文件夹多个文件排成队列,单个文件传完接着传队列的下一个文件的方法可否实现?
计划很好
有种问题叫作者懒得写(
在 2018年4月11日,下午11:38,OHLIA notifications@github.com 写道:
我提个想法, 上传目录的功能:文件夹多个文件排成队列,单个文件传完接着传队列的下一个文件的方法可否实现?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cnbeining/onedrivecmd/issues/24#issuecomment-380667971, or mute the thread https://github.com/notifications/unsubscribe-auth/ABfRgikPOKzaepn6OcKtCrxeXtKJHx3kks5tnswigaJpZM4TPZXT.
这几天传文件发现大于10G单文件会上传失败,不知道其他人有没有遇到过。 会不会是onedrive的限制?
还真是。
SharePoint(别问我 我真的不知道为什么MS要把Onedrive变得这么复杂)的最大文件限制是10G,但是好像变成15G了。
考虑到MS的文档比党章还不可信,这东西还是自己试验比较好。
Google:单文件5TB看着你
我最后拿shell写了个递归脚本来解决文件夹上传的问题,代码如下:
function rupload(){ # localdir, remotedir
if [ -d "$1" ]
then
local flag=0 # fock mein arse
for file in `ls "$1" | sed 's/ /|/g'`
do
file=`echo "$file" | sed 's/|/ /g'`
if [ -d "$1/$file" ]
then
file2=`echo "$file" | sed 's/ /./g'`
echo "onedrivecmd mkdir \"$2/$file2\""
# onedrivecmd mkdir "$2/$file2"
rupload "$1/$file" "$2/$file2"
else
# file=`echo "$file" | sed 's/|/ /g'`
# echo "onedrivecmd put \"$1/$file\" \"$2\""
# onedrivecmd put "$1/$file" "$2"
if [ $flag == 0 ]
then
echo "onedrivecmd put \"$1/\"*.* \"$2\""
# onedrivecmd put "$1/"*.* "$2"
flag=1
fi
fi
done
fi
}
localdir="$1"
remotedir="$2"
rupload "$localdir" "$remotedir"
这玩意既可以用深度优先(递归)也可以用广度优先(队列),只要确保在上传文件之前相应的文件夹在onedrive上建好既可。那当然是递归最好用了(手动滑稽 如果不需要目标文件夹没有空格(oneindex的一个bug,如果目标文件夹有空格的话会阻碍缓存重建)的话注释file2一行并将下面的file2换成file
谢谢, 功能已添加, 使用 dfs 实现. 实践表明并不需要提前 mkdir
, 上传的时候会自动创建.
参见: #41
onedrivecmd [OPTIONS] put /tmp/hello.txt od:/bar/ 上传
这条命令能否直接改为
onedrivecmd [OPTIONS] put /tmp/ od:/bar/
来上传tmp目录全部文件?