sa3Upload GAE网盘

分类-程序人生 浏览-22289 评论-3
标签:

大菠萝相册有1年没有更新了,最近看了下代码,觉得还是重新写一个网盘比较好一些。

特点

  1. 单个文件限制10M
  2. 每天流量1G
  3. 可以绑定自己的域名

TODO

  1. 写一个客户端的Upload

INSTALL

  1. 修改src/app.yaml,把sa3upload替换为您自己的APP ID
  2. 使用“appcfg.py update 目录地址”命令,将代码上传到App.

下载

演示:http://sa3upload.appspot.com
最新版本下载:http://sa3.org/hg/sa3upload/archive/tip.zip

hg clone http://sa3.org/hg/sa3upload/

留言

#1 skyqty

thanks

#2 zp

太感谢了,若是这个能做成dropbox那样的功能就更牛逼了

#3 Calum

@zp这个大小有限制啊,10M

#4 houkai

又发现个好东西 3Q

#5 john

囧,怎么没有像大菠萝相册一样的多文件上传了……

#6 ben

没有加哦

#7 TaoGOGO

原来用的大菠萝相册,后来ghs被封了,我就用独立的服务器做图床了,那时候才发现备份功能很重要,所以建议加个备份的功能

#8 smiz

请教,是否可以修改文件/文件夹排序为新的在上边? 现在这样着实不方便呐。

#9 ben

@TaoGoGo,已经加了备份功能哦。见:http://sa3.org/program/gae-bk/

#10 云在天边

啥时我也去整个哦

#11 ben

额,这个你修改下源代码,加一个按时间排序的即可哦

#12 云在天边

额,发现你的时间显示不太对哦,慢了50分钟?很怪异啊,貌似不是时区问题吧

#13 smiz

@ben #11 但是我不是程序员……不懂这些该怎么着手……所以只能来反馈orz

#14 ben

@云在天边,晕倒,服务器时间又乱了。。。我一会同步下。

#15 ben

@smiz,恩,下午我更新一个版本上去。

#16 ben

@smiz 已经更新了,下载新的代码,更新到GAE即可!

#17 smiz

@ben #16 呃,因为我有一些改动(主要是将中文翻译成了英文),所以我似乎不能直接更新(免得被覆盖?)? 所以我下下来拿WinMerge对比了下views与static下的所有文本……但还是没找出您具体是改的哪一句orz……可否告知一下我好人肉更新上去m(_ _)m

#18 ben

@smiz http://sa3.org/hg/sa3upload/rev/476056de23a7#l1.16 搜索:1.17

#19 ben

@smiz 忘记说了,是admin.py

#20 smiz

@ben #19 感谢!这次就只是更新了这份admin.py对吗?我将http://sa3.org/hg/sa3upload/rev/476056de23a7这页里所有的绿色部分填上,红色部分删去/换下就可以了对吗?

#21 smiz

咦其实那我干脆直接拿476056de23a7的admin.py更新到GAE上去就可以了啊……?

#22 smiz

噢不是,是admin.py、app.yaml、models.py,和views/admin/file.html。大概了解了。感谢耐心答复。

#23 ben

@不用啊,直接把filelists=FileList.all().fetch(PAGESIZE+1, PAGESIZE*(page-1)) 替换为:filelists=FileList.all().fetch(PAGESIZE+1, PAGESIZE*(page-1)) 即可,-表示去掉的,+代表新添加的。

#24 smiz

@ben #23 对,因为我看您修改的地方好像颇多……所以我在想那是不是“都得更新”的意思呃。

#25 ben

@smiz 另外的代码是本地上传的代码

#26 smiz

@ben #25 回报:前台的显示仍然是较旧的档案在前。后台新添加的Setting功能反馈是—— Traceback (most recent call last): File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 511, in __call__ handler.get(*groups) File "/base/data/home/apps/imgaglobeag/1.342353186511528652/admin.py", line 26, in wrapper return method(self, *args, **kwargs) File "/base/data/home/apps/imgaglobeag/1.342353186511528652/admin.py", line 137, in get self.render('views/admin/setting.html',{'setting':setting}) File "/base/data/home/apps/imgaglobeag/1.342353186511528652/admin.py", line 15, in render self.response.out.write(template.render(path, template_value)) File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/template.py", line 80, in render t = load(template_path, debug) File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/template.py", line 108, in load template = django.template.loader.get_template(file_name) File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/template/loader.py", line 79, in get_template source, origin = find_template_source(template_name) File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/template/loader.py", line 72, in find_template_source raise TemplateDoesNotExist, name TemplateDoesNotExist: setting.html

#27 smiz

↑这样似乎不太好……看了您博客首页像是刷版一样……您看过后删掉吧……

#28 ben

@smiz,稍等一会,我把新加的代码都注释掉吧。

#29 ben

@smiz 更新: 1.把model.py和admin.py,views\setting.html覆盖你本地的。 2.修改views\folder.html,把folder.filelists修改为folder.sort_filelists。 3.然后再更新皆可。

#30 smiz

@ben #29 有一点问题:5ca78742a261的包下views\下没有setting.html,是因为失手没打进去吗?还是说我本地建个空的就好了?

#31 ben

@smiz 忘记添加了哦,已经添加了,是views/admin/setting.html

#32 smiz

@ben #30 OK,这下总算是都搞定了。感谢耐心的指教(其实我都有点不好意思继续问了,笑)。这款对我来说相当实用,也请先生能在业余继续加油完善下去吧,客户端也很期待。关注这^^

#33 ben

@smiz 是我的原因,导致你...真抱歉 :)

#34 houkai

打开演示 出现 App Engine Error Over Quota This Google App Engine application is temporarily over its serving quota. Please try again later.

#35 ben

@houkai 下载的流量超了...谁乱下载啊,囧。

#36 云在天边

我昨天都看到你的那个项目over quota了

#37 ben

@云在天边,那你怎么不告诉我下哦。我已经把那个mp3删除咯。。

#38 云在天边

我提前不知道你那里放的是mp3,以为是你放的图片外链太多,导致……

#39 Cat Fun

在添加目录的时候,怎么才能添加多层目录啊? 比如2010/04/22和2010/05/33这样的!你的这个程序似乎只能添加到一层目录啊!

#40 Cat Fun

能不能在上传以后能让文件名直接显示,而不是在文件名前面加上一串数字?比如bbb.txt上传后的链接地址变为12345-bbb.txt啦!这样不好外链啊!

#41 ben

@CatFun 目前只有一级分类哦,那个ID是为了防止文件名重名。

#42 Cat Fun

@ben 能否弄一个可以多级分类的?而且不要更改文件名的? 万分感谢!

#43 ben

@CatFun ,你可以看下这个项目:http://code.google.com/p/gae-webdav/

#44 Cat Fun

@ben 我不太懂代码!看不懂!你能把多级分类和不要更改文件名这两个功能加上去么?这两个功能真的很有用!

#45 ben

上面那个项目就是多级分类,和不改文件名的哦。

#46 Cat Fun

他那个不知道该怎么使用~给的例子网站进不去!

#47 avh0202

请问如何绑定域名?

#48 ben

google google app 绑定域名

#49 理想

那个“SSH云代理”是不是类似 fedora func?

#50 ben

@理想 采用的Twisted,基本功能实现后,在本地跑没问题,在VPS上,占用内存太多,没办法提供服务。囧

#51 ben

@理想 刚看了您说的func,看起来不错,不过我现在在改写Dropbear的Server,来实现类似功能吧。

#52 Max Sum

为什么我上传flv,自己再下载播放时会出错??(6MB,另外一个800K的没事)

#53 ben

@Max Sum上传前和下载后的大小一样吗?

#54 Max Sum

大小一样。刚刚又下了一次,终于成功了……之前下载错误的时候,在appengine.google.com查看,发现error很多

#55 Max Sum

支持@ben ,希望快点出客户端!

#56 Max Sum

汉化做好了http://sumdisk.appspot.com/soft/72001-sa3upload%20%E6%B1%89%E5%8C%96%E7%89%88.rar,不过为什么之前直接改index.html、folder.html的时候会出现乱码,改base.html不会?

#57 Max Sum

修改了一下,还是直接去http://sumdisk.appspot.com/soft/ 吧

#58 Max Sum

时差问题怎么解决??

#59 ben

@Max Sum 客户端,直接根据http://sa3.org/program/gae-bk/写一个即可。

#60 ben

@Max Sum 能把后台错误帖出来吗?我没有遇到过这个问题。时差问题,可以加个filter,把时间加个8hour即可。

#61 Max Sum

可能是这段……不知道怎么调出来 http://sumdisk.appspot.com/76001-error.txt 我不懂python语言,能帮忙解决时差么

#62 Max Sum

客户端是指上传,不是下载……而且我也看不懂python

#63 Max Sum

如果能够像ftp一样管理就好了

#64 云在天边

@Max Sum 在index.yaml里添加缺失的索引就能解决了

#65 Max Sum

咋添加?

#66 ben

@Max Sum 关于FTP,可以采用这个。http://code.google.com/p/gae-webdav/

#67 MC柯

能不能稍微修改下,使他和Google Storage for Developers相配合?

#68 ben

@MC柯 我才拿到Google Storage 邀请,正在看哦。

#69 congxz6688

建好了,果然好用! 一个小小缺憾就是进入管理页后没有返回链接。 http://bigcat6688.appspot.com/ 欢迎大家来看看,还有我自己修改的Diabloimage哟。能批量上传,批量取链。

#70 blambinneng@gmail.com

上传出错了,帮看看 http://penmbin.appspot.com/

#71 ben

@blambinneng@gmail.com 可以访问呀

#72 zio

什么时候增加批量上传啊?大菠萝不是有了么?

#73 ben

@zio 最近在忙另外一个项目,忙完了就加吧。

#74 ricky

http://402.latest.hkg242211.appspot.com/ 去不了主頁,帮看看

#75 ben

@ricky 可以访问呀?

#76 dengmin

很牛X

#77 了然

那个0 0ben,我想问下,去掉文件前面的ID-改哪里,我研究了下,实在弄不明白代码...麻烦你告诉我一下...谢啦 我想达到上传文件下载链接直接就是网址/文件名.后缀名 祝你开心

#78 ben

@了然 去掉ID就不能下载文件了,所以后面跟的文件名只是为了好看而已。

#79 了然

哦,谢谢

#80 了然

额,再次麻烦下你,ID能固定不0 0...提前道午安哈...嘿嘿

#81 dashan

请问下,每个application可以传几个应用? 我看网上说一个,可是我怎么传了两个,就是你写的那个相册,还有个就是别人根据你的修改的版本。谢谢。

#82 ben

10个

#83 dashan

也就是说我可以申请10个applications,然后每个application可以上传10个应用。我以前都是每个应用占用一个application名字。谢谢你

#84 dofine

请问能不能实现多用户管理?我们班级准备用这个建一个资料共享网盘。。

#85 云在天边

@dofine 你在GAE后台邀请那些人成为管理员,然后他们就可以登陆了

#86 Angel

额,,,来晚了,,,这个程序不错。。。

#87 baozi

这个网盘可以不以做点美化

#88 了然

网盘上传的rar等压缩程序下载后会损坏,不知原因

#89 GreatGhoul

如果只上传比较小的文件文件的话,Google应该不会感冒吧。

#90 sa

一個 Diabloimage 的BUG 001 和003 都有這個BUG 刪除圖片的鏈接里有 "-" 符號的話會無法刪除掉這張圖片 比如 http://staalupincture.appspot.com/show/8001/ 刪除鏈接為 http://staalupincture.appspot.com/admin/del/ag5zdGFhbHVwaW5jdHVyZXINCxIGSW1hZ2VzGME-DA 這張圖就無法刪除 已經用FF IE 還有chrome測試過 都不行

#91 ben

@sa 谢谢提醒,URL正则里少写了一个"-",导致匹配错误。非常感谢提交BUG.

#92 ben

@sa http://code.google.com/p/diabloimage/downloads/list下载最新的版本,问题应该解决了

#93 sk

可以创建文件夹。 你好怎样指定上传文件夹,我试了很多次,没有找到入口。。。

#94 sk

找到了,竟然是上传后重新指定目录,看代码都找了好久,O(∩_∩)O~

#95 6474

Error parsing yaml file: Unexpected attribute 'secure' for object of type <class 'google.appengine.api.ap pinfo.URLMap'>. in "src\app.yaml", line 20, column 11

#96 congxz

您好,汇报下最新版007的问题。(XP、FireFox) 1、批量上传还是不成功,上传结束后仍然显示为ERROR; 2、新的删除命令不好用,点击无效。

#97 ben

@congxz Firefox下不能正常上传是因为Flash在Firefox获取Cookie有点问题~

#98 ben

@congxz 不能删除,我马上测试一下看看

#99 ben

@congxz 你发一个删除的链接过来?我本地测试的可以呀?

#100 等待思索

有新版本了?

#101 YM

HI. 我怎么上传500kb以上的文件失败?谢谢答复

#102 ben

@YM 把后台的错误日志帖一下看看?

#103 YM

在哪里查看后台的错误日志?

#104 ben

@YM appengine.google.com

#105 wlf

你好, 为什么我是用了你的方法, 上传.rar文件总是出错呢?

#106 icyomik

NeedIndexError: The index for this query is not ready to serve. See the Datastore Indexes page in the Admin Console. This query needs this index: - kind: FileList properties: - name: folder - name: created_at direction: desc

#107 icyomik

出现上面的错误,应该怎么办??

#108 heartnn

能添加多重目录就好了,再一个如果有文件描述的功能就更好了,另外上传文件的时候不能选择目录吗?一定要上传后才能编辑,这点比较郁闷。

#109 Max Sum

最近上傳cab、jar、zip、rar都出現錯誤,但crx就沒有…… 顯示如下: Traceback (most recent call last): File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 513, in __call__ handler.post(*groups) File "/base/data/home/apps/sumdisk/1.346165675623017604/admin.py", line 26, in wrapper return method(self, *args, **kwargs) File "/base/data/home/apps/sumdisk/1.346165675623017604/admin.py", line 41, in post mime = self.request.body_file.vars['file'].headers['content-type'] File "/base/python_runtime/python_dist/lib/python2.5/rfc822.py", line 384, in __getitem__ return self.dict[name.lower()] KeyError: 'content-type'

#110 ben

@Max Sum 恩,最近准备升级下sa3Upload,增加一个多文件上传

#111 Max Sum

您回复好快……

#112 davoola

这个是不是有文件类型限制呀 我上传rar都报错,后来我把.rar改成.jpg,就能上传了,其实文件还是同样的文件。这个支持哪些文件类型呢/

#113 heartnn

网盘被刷爆了,可不可以加个防盗链呢~~

#114 ben

@heartnn 这个和图片不一样啊,咋处理防盗链?

#115 heartnn

可以定义来源,把来源不对的统统跳转到某个定义好的文件,比如“不许盗链.txt”等等。

#116 ben

@heartnn 别人用迅雷不就可以了?

#117 heartnn

@ben 哎呀,还真是麻烦的。。。不过一般人不会去改迅雷的refer吧?

#118 ben

@heartnn 你太小瞧迅雷了。。迅雷都自动加的

#119 heartnn

@ben 如果下载页面用js转换一下,起码应该会好一些吧?

#120 ray

http://code.google.com/p/gae-webdav/ 这个项目为什么没有下载的地方。。

#121 heartnn

@ray check svn就可以了。

#122 末路图腾

呼救博主:刚玩GAE,上传的文件为什么会显示路径,这个怎么去掉。。.?这是地址:http://alt-me.appspot.com

#123 游客

sa3upload目前是把每个文件都对应一个KEY,对外URL格式是"Path/Key-FileName",但是对于有更新需要的文件,当更换文件后,URL就不一样了,导致引用附件原有地址就实效了,能改成单纯按照文件名组织文件路径的方式吗? 个人觉得这个特性对发布资源来说太重要了. 急需修改一下!

#124 ben

@谢谢各位的支持,不过快过年了,可能没时间忙更新这个。我会在有时间的情况下,尽快解决这些问题。我更推荐使用Google Storage。

#125 58days

@末路图腾 我自己修改了一下,有这三个改动 1、上传文件无需登录 2、private的目录需要登录才能查看、下载 3、优化用ie浏览器上传时的文件名 地址:http://u.b57.net/

添加留言