安裝面板
請先安裝面板再閲讀本文
使用WinSCP上傳文件到伺服器
在開始之前,你需要把本地的圖片文件上傳到伺服器
下載並安裝WinSCP
選擇左邊的按鈕下載
安裝
連接到伺服器
之後像連接SSH一樣填寫伺服器資訊
不會的可以看這裏
點擊接受
選擇文件路徑(伺服器)
在右邊的窗口
點擊這裏返回
選擇存放文件的位置
我個人喜歡放在/home/server
需創建 server文件夾(點擊右鍵創建)
我這次把圖片放在/home/server/pixiv
找到文件路徑(本地電腦)
打開資源管理器(檔案總管)
打開你存放圖片的文件夾
點擊這裏複製路徑
上傳文件
接著回到winSCP
點擊左上角,會彈出一個窗口,在開啓目錄下方貼上路徑,最後點擊確定
ctrl+a 全選,接著點擊上傳
*上傳需要一段時間,請耐心等待
上傳完成後就可在右邊看到你所上傳的圖
創建伺服器文件
返回到/home/server
創建一個random-image-api
文件夾
創建Python文件
然後創建一個app.py
文件
雙擊打開,並在裏面貼上代碼
import os
import random
import logging
from aiohttp import web
IMAGE_FOLDER = '/home/server/pixiv'
PORT = 8080
logging.basicConfig(level=logging.INFO, format='%(asctime)s|%(message)s')
logger = logging.getLogger(__name__)
async def random_image(request):
files = os.listdir(IMAGE_FOLDER)
if not files:
return web.Response(status=404, text="No images found")
random_file = random.choice(files)
file_path = os.path.join(IMAGE_FOLDER, random_file)
return web.FileResponse(file_path, headers={
'Content-Disposition': f'inline; filename="{random_file}"'
})
app = web.Application()
app.add_routes([web.get('/', random_image)])
if __name__ == '__main__':
web.run_app(app, port=PORT)
編輯内容
可能需要編輯兩個内容:
IMAGE_FOLDER = '/home/server/pixiv'
這裏是圖片所在的文件夾,我這裏是/home/server/pixiv
,請根據情況自行更改
PORT = 8080
這裏是所使用的端口,1-65535 可選
可參考:
cloduflare-什麽是電腦端口中的有哪些不同的連接埠號碼?
更改完成後保存(ctrl+s)
創建Dockerfile
創建一個Dockerfile
文件
雙擊打開,貼上代碼:
# Use the official Python image from the Docker Hub
FROM python:3.9-slim
# Set the working directory
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install aiohttp
RUN pip install aiohttp
# Make port available to the world outside this container
EXPOSE 8080
# Run app.py when the container launches
CMD ["python", "app.py"]
編輯内容
可能需要編輯内容:
EXPOSE 8080
更改為你剛剛填的端口
更改完成後保存(ctrl+s)
編譯文件
SSH連接到伺服器
不會的可以看這裏
切換到文件路徑
之後輸入:
[random-picker-path]
*注 請把[random-picker-path]
更改為你Python及Dockerfile文件所在的路徑
比如我打的的是
cd /home/server/random-image-api
可以在WinSCP中查看路徑
編輯為Docker鏡像
*注 需要先安裝Docker,由於面板安裝時會自動安裝Docker,此處不再贅述
輸入命令:
docker build -t random-image-api .
編譯完成後輸入:
docker run -d -p 8080:8080 -v /home/server/pixiv:/home/server/pixiv random-image-api
可能需要更改以下内容
8080:8080
使用的端口
/home/server/pixiv:/home/server/pixiv
圖片文件夾的路徑
添加防火墻白名單
輸入命令:
ufw allow 8080
可能需要更改以下内容
8080
使用的端口
訪問網站
瀏覽器輸入http://ip:端口
即可查看圖片
我的隨機圖片API:
https://image.smallbottle2.top
如果出現了問題,可到評論區發問
评论区