You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Switch between cloud storage services and image hosts at any time
Multiple Profiles
Save and switch between multiple configuration sets with one click
Image Processing
Server-side compression, WebP conversion, and watermarking — toggle per profile
Extensible Architecture
Drivers and extensions are auto-discovered; drop a file into the right directory and it works
Responsive Config UI
Mobile-friendly settings panel with dark mode support
Upload Progress Toast
Real-time toast notifications showing upload status
Storage Drivers
Driver
ID
Description
Local
local
Follows Typecho's native logic, stores to usr/uploads/
Lsky Pro
lsky
Supports v1 / v2 API
AWS S3 / Compatible
s3
AWS S3, MinIO, Cloudflare R2, Alibaba Cloud OSS (S3-compatible), etc.
WebDAV
webdav
Standard WebDAV protocol
GitHub Repository
github
Stores via GitHub Contents API, supports CDN acceleration
S.EE (SM.MS)
smms
S.EE free image host
Alibaba Cloud OSS
aliyunoss
Alibaba Cloud Object Storage Service (native V1 signature)
Tencent Cloud COS
tencentcos
Tencent Cloud Object Storage (COS V5 signature)
Qiniu Cloud KODO
qiniukodo
Qiniu Cloud object storage
Upyun USS
upyun
Upyun cloud storage
EasyImage
easyimage
Self-hosted EasyImage
Cloudflare ImgBed
cfimgbed
Image host based on Cloudflare Workers
NodeImage
nodeimage
NodeImage host, authenticated via X-API-Key
Chevereto V4
cheveretoV4
Self-hosted Chevereto V4, supports albums
Imgur
imgur
Supports anonymous and account-based uploads
OneImg
oneimg
Bearer Token authentication
Telegram ImgBed
tgimagebed
tg-imagebed project, supports anonymous and token uploads
Zpic
zpic
Zpic / ImgURL Pro, supports V2/V3 API
Image Processing Extensions
Extensions live in the extensions/ directory and can be enabled or disabled independently per profile.
Extension
ID
Requires
Description
Compression
compress
PHP gd
Lossy/lossless compression for JPEG/PNG/WebP with configurable quality
WebP Conversion
webp
PHP gd + WebP support
Converts JPEG/PNG/GIF/BMP to WebP before upload
Watermark
watermark
PHP gd
Text watermark (TTF font) or image watermark with position and opacity control
Note: Extensions process files server-side before they are sent to cloud storage. The original file is never modified.
Requirements
Item
Minimum
Notes
PHP
7.4+
8.0+ recommended; curl, json, and fileinfo extensions required
Typecho
1.3.0+
Namespace-based version required
OpenSSL
1.1.0+
Older versions may cause TLS handshake failures with Cloudflare and similar services
Installation
Option 1 — AB-Store (Recommended)
Install the AdminBeautify plugin, then open AB-Store in the admin panel, search for PicUp, and install with one click. Updates are delivered the same way.
Extract the archive and rename the folder to PicUp
Upload it to usr/plugins/ in your Typecho installation
Go to Admin → Console → Plugins → enable PicUp
Option 3 — Git Clone
cd /path/to/typecho/usr/plugins/
git clone https://github.com/lhl77/Typecho-Plugin-PicUp.git PicUp
Setup
1. Configure a Profile
After activating the plugin, go to Admin → Settings → PicUp.
Profiles are stored as JSON. Each top-level key is a profile name. Choose a driver with "driver" and fill in the required fields for that driver. Add a "_extensions" block to configure image processing per profile.
Example — Alibaba Cloud OSS with compression and WebP:
top-left / top-right / bottom-left / bottom-right / center
font_path
Path to a TTF font file (required for CJK characters)
image_path
Path to the watermark image (type=image only)
image_scale
Watermark image width as a percentage of the original image width
The plugin bundles Noto Sans for text watermarks. For CJK text watermarks, provide a TTF/OTF font containing CJK characters (e.g. NotoSansCJK-Regular.ttc) or rely on a system font that the plugin auto-detects.