安裝面板

請先安裝面板再閲讀本文

面板安裝教程

使用WinSCP上傳文件到伺服器

在開始之前,你需要把本地的圖片文件上傳到伺服器

下載並安裝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

如果出現了問題,可到評論區發問