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

仍然是图床(文件床)

  •  
  •   Famio · 2018-01-03 09:55:20 +08:00 · 5956 次点击
    这是一个创建于 2277 天前的主题,其中的信息可能已经有所发展或是发生改变。
    地址: https://www.v2url.com
    特点:MDUI、批量、又拍云、鉴黄
    不敢说有多好用,刚把大部分功能完成,再慢慢迭代了。接入了又拍云,访问确实比自己服务器做空间快很多。
    各位可以收藏一下,以做备用。
    有什么好的建议和意见都会采纳。
    第 1 条附言  ·  2018-01-05 16:25:12 +08:00
    我去,果然有点上传黄图。正好测试下又拍的鉴黄功能,可以。
    36 条回复    2018-03-10 23:30:05 +08:00
    roricon
        1
    roricon  
       2018-01-03 10:07:03 +08:00
    jy02201949
        2
    jy02201949  
       2018-01-03 10:07:19 +08:00
    之前已经收藏了,感谢分享,接又拍不怕人家黑你每月整个几千大洋的账单?
    Famio
        3
    Famio  
    OP
       2018-01-03 10:20:18 +08:00
    @jy02201949 (。・∀・)ノ゙嗨,有这种担忧的,我都会天天看一下流量,慢慢完善了
    gauzeehom
        4
    gauzeehom  
       2018-01-03 10:44:09 +08:00
    我竟然收藏过
    geekyoung
        5
    geekyoung  
       2018-01-03 10:54:08 +08:00
    @roricon 不能
    aino
        6
    aino  
       2018-01-03 11:41:23 +08:00
    神马文件都可以上传 会不会很危险啊
    xiqingongzi
        7
    xiqingongzi  
       2018-01-03 11:43:00 +08:00
    点击左下角按钮不能跳转到你的博客,chrome 版本 63.0.3239.84 (正式版本) ( 64 位)
    EchoChan
        8
    EchoChan  
       2018-01-03 11:43:53 +08:00 via iPhone
    @roricon 评论区不支持 markdown,且只支持三个图床。
    Famio
        9
    Famio  
    OP
       2018-01-03 11:45:22 +08:00
    @aino 确实什么都能传,但是又拍会把文件 encoding,比如 php 文件 torrent 文件直接访问是文本格式的,不会执行。安全问题我会再改善一下,非常感谢!

    @xiqingongzi 哈哈,这个需要点“作”那个图标,只是先临时做个链接上去,感谢!
    fumichael
        10
    fumichael  
       2018-01-03 11:54:36 +08:00
    重复上传同一个文件是不是检查是不是同一个文件的,然后返回的链接是同一个链接的?
    Famio
        11
    Famio  
    OP
       2018-01-03 11:56:57 +08:00
    @fumichael 没错,重复文件返回的是同一个链接。
    szxczyc
        12
    szxczyc  
       2018-01-03 12:59:35 +08:00 via iPhone
    我收藏过后来就打不开了。找了好久
    Famio
        13
    Famio  
    OP
       2018-01-03 13:04:58 +08:00
    @szxczyc 这个要和你道个歉,因为期间在重新规划内容,所以停站了一段时间,现在新版本上了,以后就是迭代的了,感谢你的支持!
    szxczyc
        14
    szxczyc  
       2018-01-03 13:18:26 +08:00 via iPhone
    @Famio #13 ╮(。❛ᴗ❛。)╭支持!
    jiqing
        15
    jiqing  
       2018-01-03 13:56:53 +08:00 via Android
    求开源
    Famio
        16
    Famio  
    OP
       2018-01-03 14:26:39 +08:00
    @jiqing 这个开不开源已经没啥意义了,因为用的大部分开源插件&框架都列出了,自己也就是做个 UI,搭个桥罢了。
    jiqing
        17
    jiqing  
       2018-01-03 14:33:01 +08:00 via Android
    @Famio 我就是菜鸟需要项目练练...求代码
    TangMonk
        18
    TangMonk  
       2018-01-03 14:36:15 +08:00 via Android
    担心楼主流量
    LH0811
        19
    LH0811  
       2018-01-03 15:11:41 +08:00
    楼主要是开放 api 就方便了
    cy97cool
        20
    cy97cool  
       2018-01-03 15:15:31 +08:00
    @Famio upyun 的表单上传 API 不是这么用的。。。。直接把 form_api_secret 写在 js 里面就意味着任何人都可以上传 /覆盖任意内容

    正确的做法是实现一个服务端,用户需要上传的时候服务器执行签名算法返回 signature,以保证用户不会篡改 policy 任意上传

    写了个 python 来上传 index.html:

    ```
    import time
    from hashlib import md5
    import json
    import requests
    import base64
    options = {
    'bucket': 'oss-v2url',
    'save-key': '/index.html',
    'expiration': int(time.time()) + 86400
    }
    form_api_secret = '5LOuSvluJ5F/TQjEd2XE3IqKAdw='
    policy = base64.b64encode(json.dumps(options).encode('utf-8')).decode()
    signature = md5((policy + '&' + form_api_secret).encode('utf-8')).hexdigest()
    x=requests.post("https://v0.api.upyun.com/"+options['bucket'], files=[('Filename','${filename}'),('Content-Type',''),('policy',policy),('signature',signature),('file',('index.html',open('index.html','rb'),'text/html'))])
    print(x)
    print(x.headers)
    print(x.text)
    ```

    效果,不过反正你设置了 text/plain 影响不大:

    https://oss.v2url.com/2018/01/03/5fa4e6e0755fc504279c227fad64707f.jpg
    fumichael
        21
    fumichael  
       2018-01-03 16:37:28 +08:00
    @Famio 同一个文件是检查文件的 md5 之类的数据吗?文件命名是什么规则的,请教下,打算完善下文件上传的程序。
    Famio
        22
    Famio  
    OP
       2018-01-03 16:41:11 +08:00
    @cy97cool 道理我都懂,我为了先完成功能使用了表单 api 来上传,我也知道明写在 js 中有隐患的,后面再改进下。谢谢兄弟提醒
    cy97cool
        23
    cy97cool  
       2018-01-03 17:03:34 +08:00
    @fumichael 看 js 咯 https://www.v2url.com/asset/main.js
    'save-key': '/{year}/{mon}/{day}/{filemd5}{.suffix}',

    看出是文件 md5 作为文件名,这个过程是 upyun 完成的

    不过 form_api_secret 泄露的情况下,你可以任意指定文件存储的 key,也可以任意覆盖别人上传的图片
    fumichael
        24
    fumichael  
       2018-01-03 17:24:50 +08:00
    @cy97cool 谢谢,还真是这个办法。
    jsgcs
        25
    jsgcs  
       2018-01-03 18:14:48 +08:00
    @xiqingongzi 我也是
    jsgcs
        26
    jsgcs  
       2018-01-03 18:17:16 +08:00
    文件大小有限制么
    jsgcs
        27
    jsgcs  
       2018-01-03 18:19:14 +08:00
    @jsgcs 发现了 是 10M
    Itanium
        28
    Itanium  
       2018-01-03 18:25:13 +08:00
    wsly47
        29
    wsly47  
       2018-01-04 07:48:01 +08:00 via iPhone
    我以前也写了个差不多的
    https://mizore.cn/pic/
    kernel365
        30
    kernel365  
       2018-01-04 11:04:39 +08:00
    能不能删除呢?
    Famio
        31
    Famio  
    OP
       2018-01-04 11:20:13 +08:00
    @kernel365 不提供删除。
    miaomiao888
        32
    miaomiao888  
       2018-01-04 12:26:59 +08:00
    q409195961
        33
    q409195961  
       2018-01-04 20:48:25 +08:00
    https://oss.v2url.com/2018/01/04/c65033a2601f7bbb5588d19874e243ea.html

    测试 html
    (含多个 Alert,不带屏蔽浏览器勿点)
    lsido
        34
    lsido  
       2018-01-05 15:18:41 +08:00
    为什么没剑皇

    https://oss.v2url.com/2018/01/05/16e69352dd3e8d08f6163f346914728d.jpg

    过分了(。・∀・)ノ゙
    hardman
        35
    hardman  
       2018-03-10 23:25:27 +08:00 via Android
    hardman
        36
    hardman  
       2018-03-10 23:30:05 +08:00 via Android
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2877 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.