📋 已接收照片(按上传时间倒序)
🤖 树莓派自动上传脚本 (Python)
将以下脚本保存为 upload.py,在树莓派上运行即可自动上传照片。支持单张图片或整个文件夹(会自动打包为ZIP)。
import requests
import os
import sys
import zipfile
from pathlib import Path
API_URL = "https://photo-api.3412334014.workers.dev/upload"
def upload_file(file_path):
with open(file_path, 'rb') as f:
files = {'file': (Path(file_path).name, f, 'image/jpeg')}
try:
r = requests.post(API_URL, files=files)
print(f"✅ 上传成功: {file_path} -> {r.json()}")
except Exception as e:
print(f"❌ 上传失败: {file_path} - {e}")
def upload_folder(folder_path):
zip_name = f"{Path(folder_path).name}.zip"
with zipfile.ZipFile(zip_name, 'w') as zipf:
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.lower().endswith(('.jpg', '.jpeg', '.png', '.gif', '.bmp')):
full_path = os.path.join(root, file)
zipf.write(full_path, arcname=file)
with open(zip_name, 'rb') as f:
files = {'file': (zip_name, f, 'application/zip')}
try:
r = requests.post(API_URL, files=files)
print(f"📦 文件夹已打包上传: {zip_name} -> {r.json()}")
except Exception as e:
print(f"❌ 上传失败: {zip_name} - {e}")
os.remove(zip_name)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("用法: python upload.py <文件或文件夹路径>")
sys.exit(1)
target = sys.argv[1]
if os.path.isfile(target):
upload_file(target)
elif os.path.isdir(target):
upload_folder(target)
else:
print("路径无效")
💡 在树莓派上运行:pip install requests,然后 python upload.py /path/to/photo.jpg 或 python upload.py /path/to/folder