成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片上傳存儲(chǔ)服務(wù)

yzd / 1537人閱讀

摘要:地址使用實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的圖片上傳服務(wù)設(shè)計(jì)初衷對(duì)于圖片的存儲(chǔ)有很多選擇一般采用云服務(wù)如七牛又拍等但是國(guó)內(nèi)的服務(wù)像七牛自定義域名竟然需要域名備案當(dāng)初就是因?yàn)閭浒嘎闊┎胚x擇國(guó)外的而且浪費(fèi)了我十塊錢(qián)而我又想像七牛一樣可以直接在本地就可以上傳圖片找

GitHub地址: https://github.com/honmaple/maple-file

使用flask實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的圖片上傳服務(wù)

設(shè)計(jì)初衷

對(duì)于圖片的存儲(chǔ),有很多選擇,一般采用云服務(wù)如(七牛,又拍等),但是國(guó)內(nèi)的服務(wù)像七牛
自定義域名竟然需要域名備案(Excuse me,當(dāng)初就是因?yàn)閭浒嘎闊┎胚x擇國(guó)外的),而且浪費(fèi)了我十塊錢(qián),

而我又想像七牛一樣可以直接在本地就可以上傳圖片,找來(lái)找去,沒(méi)有找到一個(gè)比較合適的,所以花兩天時(shí)間自己寫(xiě)了一個(gè)

使用

由于初衷是本地腳本就可以發(fā)布,所以沒(méi)有前端界面,等以后有時(shí)間了再加上

API

/api/login

POST

登錄

/api/logout

GET

注銷(xiāo)

/api/albums

GET
獲取相冊(cè)列表

POST
新建相冊(cè)

name 相冊(cè)名稱(chēng)

description 相冊(cè)描述

/api/albums/

pk 相冊(cè)ID

GET
獲取相冊(cè)信息

PUT
修改相冊(cè)信息

name 相冊(cè)名稱(chēng)

description 相冊(cè)描述

DELETE
刪除相冊(cè)

/api/images

GET
獲取圖片列表

POST
上傳圖片

images 上傳圖片列表

album 相冊(cè)ID(默認(rèn)會(huì)新建一個(gè)default相冊(cè))

/api/images/

GET
獲取圖片信息

PUT
修改圖片信息

name 圖片名稱(chēng)

description 圖片描述

DELETE
刪除圖片

配置
class Config(object):
    DEBUG = True # 生產(chǎn)環(huán)境設(shè)置為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 # 分頁(yè)
    ADMIN_URL = "/admin/aaaaa" # 后臺(tái)地址

    LOGIN_TOKEN_HEADER = "Api-Key" # 將會(huì)影響到后面headers設(shè)置
    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"]) # 允許上傳的擴(kuò)展名
    UPLOAD_FOLDER_ROOT = os.path.dirname(os.path.abspath(__file__))
    UPLOAD_FOLDER_PATH = "images" # 相對(duì)于當(dāng)前文件路徑的地址
    UPLOAD_FOLDER = os.path.join(UPLOAD_FOLDER_ROOT, UPLOAD_FOLDER_PATH)

創(chuàng)建賬戶(hù)
python manager.py create_user

將同時(shí)創(chuàng)建一個(gè)default的相冊(cè)

python manager.py key

顯示用戶(hù)key

上傳

上傳后圖片保存路徑

原圖路徑:

UPLOAD_FOLDER + "username" + "photo" + %Y + %m + (時(shí)間戳+隨機(jī)數(shù)).png

縮略圖路徑:

UPLOAD_FOLDER + "username" + "thumb" + %Y + %m + (時(shí)間戳+隨機(jī)數(shù)).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)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/38523.html

相關(guān)文章

  • 小程序開(kāi)發(fā):上傳圖片到騰訊云

    這是小程序開(kāi)發(fā)第二篇,主要介紹如何上傳圖片到騰訊云,之所以選擇騰訊云,是因?yàn)轵v訊云免費(fèi)空間大? 準(zhǔn)備工作 上傳圖片主要是將圖片上傳到騰訊云對(duì)象存儲(chǔ)(COS)。 要使用對(duì)象存儲(chǔ) API,需要先執(zhí)行以下步驟: 購(gòu)買(mǎi)騰訊云對(duì)象存儲(chǔ)(COS)服務(wù) 在騰訊云 對(duì)象存儲(chǔ)控制臺(tái) 里創(chuàng)建一個(gè) Bucket 在控制臺(tái) 個(gè)人 API 密鑰 頁(yè)面里獲取 AppID、SecretID、SecretKey 內(nèi)容 編寫(xiě)一個(gè)...

    why_rookie 評(píng)論0 收藏0
  • 小程序開(kāi)發(fā):上傳圖片到騰訊云

    這是小程序開(kāi)發(fā)第二篇,主要介紹如何上傳圖片到騰訊云,之所以選擇騰訊云,是因?yàn)轵v訊云免費(fèi)空間大? 準(zhǔn)備工作 上傳圖片主要是將圖片上傳到騰訊云對(duì)象存儲(chǔ)(COS)。 要使用對(duì)象存儲(chǔ) API,需要先執(zhí)行以下步驟: 購(gòu)買(mǎi)騰訊云對(duì)象存儲(chǔ)(COS)服務(wù) 在騰訊云 對(duì)象存儲(chǔ)控制臺(tái) 里創(chuàng)建一個(gè) Bucket 在控制臺(tái) 個(gè)人 API 密鑰 頁(yè)面里獲取 AppID、SecretID、SecretKey 內(nèi)容 編寫(xiě)一個(gè)...

    idisfkj 評(píng)論0 收藏0
  • 基于Minio和Thumbor搭建獨(dú)立圖片服務(wù)

    摘要:但是很多企業(yè)項(xiàng)目因?yàn)楦鞣N需求,還是會(huì)要求圖片服務(wù)部署在內(nèi)部。所以我們還是可能會(huì)需要一個(gè)可獨(dú)立部署的圖片服務(wù)。注意,這種啟動(dòng)模式僅限于測(cè)試環(huán)境下,一旦命令終止,數(shù)據(jù)將會(huì)消失。 多數(shù)應(yīng)用系統(tǒng)都會(huì)用到圖片存儲(chǔ),從系統(tǒng)架構(gòu)角度來(lái)說(shuō),像圖片存儲(chǔ)這樣的服務(wù)應(yīng)該盡量從核心業(yè)務(wù)中剝離出來(lái)。很多人會(huì)選擇在線云存儲(chǔ)服務(wù),比如七牛云存儲(chǔ)之類(lèi)的。但是很多企業(yè)項(xiàng)目因?yàn)楦鞣N需求,還是會(huì)要求圖片服務(wù)部署在內(nèi)部。所以...

    novo 評(píng)論0 收藏0
  • 基于Minio和Thumbor搭建獨(dú)立圖片服務(wù)

    摘要:但是很多企業(yè)項(xiàng)目因?yàn)楦鞣N需求,還是會(huì)要求圖片服務(wù)部署在內(nèi)部。所以我們還是可能會(huì)需要一個(gè)可獨(dú)立部署的圖片服務(wù)。注意,這種啟動(dòng)模式僅限于測(cè)試環(huán)境下,一旦命令終止,數(shù)據(jù)將會(huì)消失。 多數(shù)應(yīng)用系統(tǒng)都會(huì)用到圖片存儲(chǔ),從系統(tǒng)架構(gòu)角度來(lái)說(shuō),像圖片存儲(chǔ)這樣的服務(wù)應(yīng)該盡量從核心業(yè)務(wù)中剝離出來(lái)。很多人會(huì)選擇在線云存儲(chǔ)服務(wù),比如七牛云存儲(chǔ)之類(lèi)的。但是很多企業(yè)項(xiàng)目因?yàn)楦鞣N需求,還是會(huì)要求圖片服務(wù)部署在內(nèi)部。所以...

    jsyzchen 評(píng)論0 收藏0
  • FastDFS+Nginx搭建分布式圖片存儲(chǔ)

    摘要:可以將稱(chēng)為追蹤服務(wù)器或調(diào)度服務(wù)器。實(shí)際保存文件分為多個(gè)組,每個(gè)組之間保存的文件是不同的。虛擬磁盤(pán)路徑配置的虛擬路徑,與磁盤(pán)選項(xiàng)對(duì)應(yīng)。數(shù)據(jù)兩級(jí)目錄服務(wù)器在每個(gè)虛擬磁盤(pán)路徑下創(chuàng)建的兩級(jí)目錄,用于存儲(chǔ)數(shù)據(jù)文件。1.什么是FastDFS FastDFS是用 c 語(yǔ)言編寫(xiě)的一款開(kāi)源的分布式文件系統(tǒng)。FastDFS 為互聯(lián)網(wǎng)量身定制, 充分考慮了冗余備份、負(fù)載均衡、線性擴(kuò)容等機(jī)制,并注重高可用、高性能等...

    CoderDock 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<