最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

使用Python实现一个简单的图片上传存储服务

来源:动视网 责编:小采 时间:2020-11-27 14:25:33
文档

使用Python实现一个简单的图片上传存储服务

使用Python实现一个简单的图片上传存储服务:GitHub地址: https://github.com/honmaple/maple-file使用flask实现的一个简单的图片上传服务设计初衷对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛自定义域名竟然需要域名备案(Excuse me,当初就是因为备案麻烦
推荐度:
导读使用Python实现一个简单的图片上传存储服务:GitHub地址: https://github.com/honmaple/maple-file使用flask实现的一个简单的图片上传服务设计初衷对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛自定义域名竟然需要域名备案(Excuse me,当初就是因为备案麻烦


设计初衷

对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛
自定义域名竟然需要域名备案(Excuse me,当初就是因为备案麻烦才选择国外的),而且浪费了我十块钱,

而我又想像七牛一样可以直接在本地就可以上传图片,找来找去,没有找到一个比较合适的,所以花两天时间自己写了一个

使用

由于初衷是本地脚本就可以发布,所以没有前端界面,等以后有时间了再加上

API

  • /api/login

  • POST

    登录
  • /api/logout

  • GET

    注销
  • /api/albums

  • name 相册名称

  • description 相册描述

  • GET
    获取相册列表

  • POST
    新建相册

  • /api/albums/<int:pk>

    pk 相册ID

  • name 相册名称

  • description 相册描述

  • GET
    获取相册信息

  • PUT
    修改相册信息

  • DELETE
    删除相册

  • /api/images

  • images 上传图片列表

  • album 相册ID(默认会新建一个default相册)

  • GET
    获取图片列表

  • POST
    上传图片

  • /api/images/<int:pk>

  • name 图片名称

  • description 图片描述

  • GET
    获取图片信息

  • PUT
    修改图片信息

  • DELETE
    删除图片

  • 配置

    class Config(object):
     DEBUG = True # 生产环境设置为False
     SECRET_KEY = 'ccc' # import os;os.urandom(24)
     SECRET_KEY_SALT = 'ssss'
     JSON_AS_ASCII = False
    
     PERMANENT_SESSION_LIFETIME = timedelta(days=3)
    
     PER_PAGE = 10 # 分页
     ADMIN_URL = '/admin/aaaaa' # 后台地址
    
     LOGIN_TOKEN_HEADER = 'Api-Key' # 将会影响到后面headers设置
     LOGIN_TOKEN = 'api_key' #url?api_key=21312313
    
     MIDDLEWARE = ['storage.common.middleware.CommonMiddleware']
    
     SQLALCHEMY_TRACK_MODIFICATIONS = False
     SQLALCHEMY_DATABASE_URI = 'sqlite:///test.db'
     # SQLALCHEMY_ECHO = DEBUG
     UPLOAD_ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg']) # 允许上传的扩展名
     UPLOAD_FOLDER_ROOT = os.path.dirname(os.path.abspath(file))
     UPLOAD_FOLDER_PATH = 'images' # 相对于当前文件路径的地址
     UPLOAD_FOLDER = os.path.join(UPLOAD_FOLDER_ROOT, UPLOAD_FOLDER_PATH)

    创建账户

    python manager.py create_user

    将同时创建一个default的相册

    python manager.py key

    显示用户key

    上传

    上传后图片保存路径

  • 原图路径:

    UPLOAD_FOLDER + 'username' + 'photo' + %Y + %m + (时间戳+随机数).png
  • 缩略图路径:

    UPLOAD_FOLDER + 'username' + 'thumb' + %Y + %m + (时间戳+随机数).png
  • example

    使用requests本地上传

    import requests
    
    def images():
     url = 'http://127.0.0.1:8000/api/images'
     files = {'images': open('desktop.png', 'rb')}
     multiple_files = [
     ('images', ('11.png', open('11.png', 'rb'), 'image/png')),
     ('images', ('desktop.png', open('desktop.png', 'rb'), 'image/png'))
     ]
     headers = {
     'Api-Key':
     'InhpeWFuZzA4MDdJBtx4AWlPpI_Oxx1Ki8',
     'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'
     }
     # r = requests.post(url, files=multiple_files, headers=headers)
     r = requests.post(url, files=files, headers=headers)
     print(r.text)

    文档

    使用Python实现一个简单的图片上传存储服务

    使用Python实现一个简单的图片上传存储服务:GitHub地址: https://github.com/honmaple/maple-file使用flask实现的一个简单的图片上传服务设计初衷对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛自定义域名竟然需要域名备案(Excuse me,当初就是因为备案麻烦
    推荐度:
    标签: 图片 上传 的图片
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top