摘要:地址使用實(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
設(shè)計(jì)初衷使用flask實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的圖片上傳服務(wù)
對(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ù)).pngexample
使用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
這是小程序開(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è)...
這是小程序開(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è)...
摘要:但是很多企業(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)部。所以...
摘要:但是很多企業(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)部。所以...
摘要:可以將稱(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ī)制,并注重高可用、高性能等...
閱讀 1356·2023-04-26 00:35
閱讀 2728·2023-04-25 18:32
閱讀 3379·2021-11-24 11:14
閱讀 782·2021-11-22 15:24
閱讀 1432·2021-11-18 10:07
閱讀 6561·2021-09-22 10:57
閱讀 2787·2021-09-07 09:58
閱讀 3575·2019-08-30 15:54