推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
huntzhan
V2EX  ›  Python

将图片自动上传到 GitHub, 返回图片 URL

  •  
  •   huntzhan ·
    huntzhan · Aug 14, 2016 · 15717 views
    This topic created in 3736 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Aug 17, 2016
    GitHub 的官方回复, 并不构成 Abuse.

    > Thanks for your question! We've reviewed your project and, in addition to uploading files, it appears to assist in generating rawgit URLs. Is that correct?
    >
    > If that's the case, your project doesn't appear to violate GitHub's Terms of Service, though you may want to check in with the owner of rawgit if you haven't already done so.
    >
    > Of course, any individual who decided to use your code would be responsible for making sure their usage and content didn't violate our Terms.
    >
    > Please let me know if you have any other questions.
    Supplement 2  ·  Aug 17, 2016
    另外, 目前项目已经支持七牛的对象存储, 这让有洁癖的用户也可以使用了.
    78 replies  •  2018-01-11 12:12:11 +08:00
    xiahei
    xiahei
    Aug 14, 2016 via Android❤️12
    1
    GitHub 不是用来做图床的。为何要这样……
    v1024
    v1024
    Aug 14, 2016
    2
    一段简单的 shell , cp 图片到 git 仓库 , 自动 add+commit+push ,效果一样,不懂楼主搞这么复杂干啥,连 travis-ci 都用上了。。
    aprikyblue
    aprikyblue
    Aug 14, 2016 via Android
    3
    所以 lz 你有多闲。。
    slixurd
    slixurd
    Aug 14, 2016
    4
    少年哈哈哈哈哈哈....
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    5
    @slixurd (远目)
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    6
    @xiahei 我觉得挺好的, GitHub 本身的 CDN 好像速度还可以的样子 (
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    7
    @v1024 的确不是什么复杂的东西, 但是做一层抽象总是好的, 反正我自己用得挺爽
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    8
    @v1024 而且 travis-ci 这种东西这么简单又不用钱, 干嘛不用
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    9
    @v1024 如果不是 PyPI 的版本管理太扭曲, 我还打算把自动发布也集成到 TravisCI 里, 每次 commit 过了 testcases 就自动 push 个版本...
    vitovan
    vitovan
    Aug 14, 2016❤️1
    10
    建议把最终地址换成这个:

    https://rawgit.com/
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    11
    @vitovan thanks!
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    12
    @vitovan 已经换了
    majinjing3
    majinjing3
    Aug 14, 2016 via Android
    13
    如果直接在产品中使用,会对 github 完成形象么?
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    14
    @majinjing3 "会对 github 完成形象么?" 没看懂...
    majinjing3
    majinjing3
    Aug 14, 2016
    15
    @huntzhan 如果直接在产品中使用,会对 github 造成影响么?打错字了, sorry !
    inoris
    inoris
    Aug 14, 2016❤️1
    16
    @majinjing3 @huntzhan 我猜是「造成影响」,九宫格输入法的锅 :)。
    majinjing3
    majinjing3
    Aug 14, 2016
    17
    @huntzhan 建议加个自定义上传分支的配置,不仅仅是 master
    huntzhan
    huntzhan
    OP
    Aug 14, 2016❤️1
    18
    @majinjing3 不会吧, 有 CDN 顶着
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    19
    @inoris XD
    majinjing3
    majinjing3
    Aug 14, 2016
    20
    @inoris 真聪明,佩服,佩服!
    inoris
    inoris
    Aug 14, 2016
    21
    看起来是开一个 repo 用来放图的,感觉不太友好。 GitHub 自己有一个图床接口,在 Issues 页里可以拖拽图片上传,接口是 https://github.com/upload/policies/assets ,不妨试试?
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    22
    @majinjing3 已经加上了, 支持自定义 branch 与 path.
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    23
    @inoris 你说的是 https://developer.github.com/v3/repos/releases/ 这个接口吧? 似乎这个接口也不适合用来做这个事情. 之前我打算用 issue 的自动拖图片上传的接口, 调研的结论是 GitHub 没有开放这个接口, 所以才直接用 contents 的 API 的.
    hellopython
    hellopython
    Aug 14, 2016
    24
    Example of .img2url.yml:

    token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    user: img2url-testing
    repo: img2url-testing-travisci
    proxies:
    https: socks5://127.0.0.1:1080
    Required fields:

    token: Personal access tokens of your GitHub account. If you don't have one, click "Generate new token" and select the "repo" scope, then record the generated token.
    user: Account of GitHub.
    repo: The repository to store images.

    这个怎么填写啊?
    7sDream
    7sDream
    Aug 14, 2016❤️6
    25
    感觉吧,并不是很道德,毕竟 Github 是为了合作码代码,而不是作为网盘或图床。

    Github 使用协议的 General Conditions 第 12 条: If your bandwidth usage significantly exceeds the average bandwidth usage (as determined solely by GitHub) of other GitHub customers, we reserve the right to immediately disable your account or throttle your file hosting until you can reduce your bandwidth consumption.

    所以还是注意下吧。

    如果有人去 https://github.com/contact/report-abuse 报告滥用的话可能会被封的。

    善意提醒一下。
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    26
    @7sDream 十分感谢, 之前没有注意到这一点. 我看下是否有解决方案...
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    27
    @hellopython 在 HOME 下面创建一个 `.img2url.yml`, 然后按照 YAML 的语法写就可以了. 直接把 example 复制过去, 改下 `token`, `user`, `repo` 的值就可以用了.
    we000
    we000
    Aug 14, 2016
    28
    @huntzhan 解决方案就是删除项目, 确实是 abuse 了
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    29
    @7sDream https://github.com/rgrove/rawgit/wiki/Frequently-Asked-Questions#what-will-happen-if-i-send-large-amounts-of-traffic-to-a-rawgitcom-development-url
    我觉得已经套上了一层 CDN, bandwidth 已经不是问题了. 我猜这个跟使用 GitHub host personal static website 是一个性质的, I'm not sure.
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    30
    @we000 同上
    20150517
    20150517
    Aug 14, 2016
    31
    我之前看到有人开发了个类似的,不过是上床新浪微博图床的,还是用那个比较好,github 国内毕竟慢
    hellopython
    hellopython
    Aug 14, 2016
    32
    @huntzhan 好的,谢谢,我是在 windows7 版本装的 python2.7 ,然后 pip 装的 img2url ,在 DOS 界面无法成功上传
    .img2url.yml 内容
    token 填的新建的
    user Github 名字
    repo 填写的新建的 photos
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    33
    @hellopython ...十分抱歉, 我手上没有 windows 的系统, 我试下用虚拟机测试一下. 字段的描述是对的.
    cszhiyue
    cszhiyue
    Aug 14, 2016
    34
    @huntzhan 确实是滥用了。建议楼主删除这个 repos 。
    XhstormR
    XhstormR
    Aug 14, 2016
    35
    github 仓库大小是有限的,不过不知道是多大。
    llbbzh
    llbbzh
    Aug 14, 2016
    37
    这就是典型的**滥用**啊……

    为何不用新浪微博呢,微博就是拿来分享图片的
    ZE3kr
    ZE3kr
    Aug 14, 2016 via iPhone
    38
    @7sDream 其实 GitHub 有 Git LFS ,随便存多大视频、图片,但是要交钱哦。 @XhstormR
    ZE3kr
    ZE3kr
    Aug 14, 2016 via iPhone
    39
    https://help.github.com/articles/billing-plans-for-git-large-file-storage/ 用这个就不算滥用了吧,要是有需要就是要用 Git 管理那些图片呢,还是很有用的。
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    40
    @llbbzh ...我发邮件去问下
    huntzhan
    huntzhan
    OP
    Aug 14, 2016❤️4
    41
    我发邮件了, 如果 GitHub 认为这个是 Abuse 我立马删项目
    XhstormR
    XhstormR
    Aug 14, 2016
    42
    @cszhiyue 所以个人免费仓库限额 1 G 吗?
    xmoiduts
    xmoiduts
    Aug 14, 2016 via Android
    43
    给 github 充值就不算滥用,
    流量&存储包: 50GB 存储加 50GB 流量,$5/月,无限叠加。
    只要充够了钱,你就能变得更强。
    Seita
    Seita
    Aug 14, 2016
    44
    @huntzhan 你收到的回复一定是让你不要这样做
    srlp
    srlp
    Aug 14, 2016
    45
    讲道理,应该使用 imgur
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    46
    @srlp 调研的时候试过了, 非常慢. 上传一个 1 Mb 左右的文件用了十分钟.
    hinkal
    hinkal
    Aug 14, 2016
    47
    可怕,这算垃圾项目了吗? [有些事技术其实不难为什么大家都不去做?]
    koalli
    koalli
    Aug 14, 2016
    48
    微博是个好图床...
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    49
    @hinkal 对不起, 我太 low 了, 只能做一些垃圾项目, 以后还要向菊苣学习一个
    shiina
    shiina
    Aug 14, 2016
    50
    好像刚在 python-cn 见过你
    hinkal
    hinkal
    Aug 14, 2016
    51
    @huntzhan 何必这么敏感,就是觉得这项目比较垃圾,没说我个人厉害,也没说你的水平不行啊
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    52
    @hinkal Cool
    Xuanwo
    Xuanwo
    Aug 14, 2016
    53
    道理我都懂,不过用 Github 当图床不太合适,除非这些图片完全用于技术讨论或者分享。
    huntzhan
    huntzhan
    OP
    Aug 14, 2016
    54
    @Xuanwo reference request
    slixurd
    slixurd
    Aug 14, 2016
    55
    就我一个人觉得这个项目没什么问题么
    滥不滥用全看个人而已
    如果只是把这个工具作为写 gitpages 时一个简易上传图片的工具,这就没什么问题
    不过也对,在 V 站只要站个队就好了。。。
    tianzhidao28
    tianzhidao28
    Aug 15, 2016
    56
    不错
    hackpro
    hackpro
    Aug 15, 2016
    57
    很好啊,能不能加个 feature 返回 url 直接复制到系统剪切板
    kitalphaj
    kitalphaj
    Aug 15, 2016
    58
    顶楼主,总有人喜欢总有人讨厌,不要太在意
    pein
    pein
    Aug 15, 2016
    59
    用这个办法上传的图片,如果访问的人很多(比如淘宝的量级),可能会造成 DDOS 一样的效果吧。如果量不大的话,应该是没问题的。
    aitaii
    aitaii
    Aug 15, 2016
    60
    Github 不是图床...
    wizardoz
    wizardoz
    Aug 15, 2016
    61
    不是说滥用 github 的行为会被举报吗?然后就被封号了。
    keenkiller
    keenkiller
    Aug 15, 2016
    62
    用七牛不就行了,有免费流量啊。。 github 这个应该是属于滥用的
    huntzhan
    huntzhan
    OP
    Aug 15, 2016
    63
    @hackpro 可以有
    huntzhan
    huntzhan
    OP
    Aug 15, 2016
    64
    @tairan2006 好的, 我今天集成一下七牛的 API
    killerv
    killerv
    Aug 15, 2016
    65
    项目不错,但是 github 不是个图床,做他应该做的事吧,图床有很多。
    yonka
    yonka
    Aug 15, 2016
    66
    明显的恶意。
    难道一些些的对免费又干净的服务的感恩之心都那么困难吗?
    lzhr
    lzhr
    Aug 15, 2016
    67
    12306 抢票插件拖垮 GitHub
    cnZary
    cnZary
    Aug 15, 2016
    68
    GitHub 在国内本来就慢........给当做 cdn
    chocotan
    chocotan
    Aug 15, 2016
    69
    我国什么人都有,滥用只是时间问题
    iyeatse
    iyeatse
    Aug 15, 2016
    70
    讲道理微博图床你们一个个用得那么爽,改成 GitHub 摇身一变就成卫道士了?
    msg7086
    msg7086
    Aug 16, 2016❤️1
    71
    拿微博当图床的怎么不跳出来说自己 abuse 呢。
    huntzhan
    huntzhan
    OP
    Aug 17, 2016
    72
    @7sDream
    @cszhiyue
    @Xuanwo
    @we000
    @xmoiduts
    @Seita
    @wizardoz
    @chocotan

    > Hi Haoxun Zhan,
    >
    > Thanks for your question! We've reviewed your project and, in addition to uploading files, it appears to assist in generating rawgit URLs. Is that correct?
    >
    > If that's the case, your project doesn't appear to violate GitHub's Terms of Service, though you may want to check in with the owner of rawgit if you haven't already done so.
    >
    > Of course, any individual who decided to use your code would be responsible for making sure their usage and content didn't violate our Terms.
    >
    > Please let me know if you have any other questions.
    >
    > Best,
    > Elizabeth

    不好啦, 皇上...皇上他造反啦
    huntzhan
    huntzhan
    OP
    Aug 17, 2016
    73
    @tairan2006 已经加入七牛的支持
    billion
    billion
    Aug 18, 2016
    74
    借楼主的顺风车,推荐我的 MarkdownPicPicker ,

    不需要输入图片地址,自动读取剪贴板的图片,自动上传到图床。

    https://github.com/kingname/MarkdownPicPicker

    已经编译好可执行程序。
    enlau0912
    enlau0912
    Aug 29, 2016❤️3
    75
    支持楼主 V2EX 搜寻图床 一堆人在那边讲微博图床,换成 github 立马跳脚,在这边骂街,结果人家站方还同意了,啪啪啪这脸响的
    saxon
    saxon
    Jun 15, 2017
    76
    有木有 js 版本的呀
    huntzhan
    huntzhan
    OP
    Jun 16, 2017
    77
    @saxon 没有
    GhostRider
    GhostRider
    Jan 11, 2018
    78
    刚好我也有这个想法啊,,,就是用 github 做图床,以来仓库里面的文档可以看,同时用 github pages 的静态博客也可以很美观,,
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   979 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 19:16 · PVG 03:16 · LAX 11:16 · JFK 14:16
    ♥ Do have faith in what you're doing.