123pan-upload
v1.0.4Upload files to 123pan (123云盘) and generate shareable links. Use when users need to upload files to 123pan and get links for sharing. Supports short share links (privacy-friendly) or direct download links. Works with small files (under 1GB) via single-step upload.
Installation
123pan-upload
Upload files to 123云盘 and generate shareable links. Supports both short links (privacy-friendly) and direct download links.
⚠️ Security Notice
Before using WebDAV/rclone features, read this:
- Rclone Config Isolation (Important)
- By default, scripts may read
~/.config/rclone/rclone.conf - This file may contain credentials for other cloud services
-
Recommendation: Use dedicated rclone config: ```bash # Create isolated config rclone config --config ~/123pan-rclone.conf
# Use it with the skill export RCLONE_CONFIG="$HOME/123pan-rclone.conf" ```
-
Credential Storage
- Use environment variables (not hardcoded in files)
- Or use
.envfile (add to.gitignore) -
Never commit credentials to version control
-
Upload Timeouts
- Large files involve long-running API verification
- May take 30-90 seconds after upload completes
- Script includes automatic retry logic
Configuration
Required for API Uploads
export PAN123_ACCESS_TOKEN="your_access_token"
export PAN123_DIRECT_FOLDER_ID="your_folder_id"
PAN123_ACCESS_TOKEN: Get from https://www.123pan.com/dashboard/devPAN123_DIRECT_FOLDER_ID: The numeric ID of a folder with direct link enabled
Optional for WebDAV Uploads (>10GB files)
export PAN123_WEBDAV_USER="your_webdav_username"
export PAN123_WEBDAV_PASS="your_webdav_password"
export RCLONE_BIN="/path/to/rclone" # Optional, defaults to system PATH
export RCLONE_CONFIG="$HOME/123pan-rclone.conf" # Recommended for isolation
WebDAV Setup
- Login to https://www.123pan.com
- Go to: Account → Third-party Mount → WebDAV Authorization
- Create an app to get WebDAV credentials
- Important: Set up isolated rclone config: ```bash # This creates a config file that only contains 123pan rclone config --config ~/123pan-rclone.conf # Follow prompts to add "123pan-webdav" remote
# Export the config path export RCLONE_CONFIG="$HOME/123pan-rclone.conf" ```
Quick Start
# Default: returns short share link (recommended)
python scripts/upload.py --file /path/to/file
# Get direct link instead
python scripts/upload.py --file /path/to/file --short-link=false
Usage
Default (Short Link)
Returns privacy-friendly short link:
python scripts/upload.py --file /path/to/file.txt
# Output: https://www.123pan.com/s/xxxxx
Direct Link (Long URL)
Returns direct download link (contains user ID in URL):
python scripts/upload.py --file /path/to/file.txt --short-link=false
Specify Target Folder
python scripts/upload.py --file /path/to/file.txt --folder 30767843
Output Format
Short Link (Default)
{
"success": true,
"file_id": 12345678,
"filename": "example.zip",
"size": 10485760,
"link": "https://www.123pan.com/s/xxxxx",
"link_type": "short_link"
}
Direct Link
{
"success": true,
"file_id": 12345678,
"filename": "example.zip",
"size": 10485760,
"link": "https://xxx.v.123pan.cn/xxx/xxx/example.zip",
"link_type": "direct_link"
}
API Workflow
- Get upload domain - Call
/upload/v2/file/domainto get upload server - Upload file - POST to
/upload/v2/file/single/create(<1GB files) - Create share link (default) - POST
/api/v1/share/createfor short link - Get direct link (optional) - GET
/api/v1/direct-link/url?fileID={id}
Privacy Note
- Short links (
--short-link): Privacy-friendly format, no user ID exposed in URL - Direct links: Contain user ID and full path, less private but allows direct download
Limitations
- Single upload limit: 1GB per file for single-step upload
- Chunked upload supports up to 10GB per file (API limit)
- Requires folder with direct link enabled
Large Files (>10GB)
For files larger than 10GB, use WebDAV instead:
Option 1: Simple WebDAV Upload
# Set up environment first
export PAN123_WEBDAV_USER="your_user"
export PAN123_WEBDAV_PASS="your_pass"
export RCLONE_CONFIG="$HOME/123pan-rclone.conf" # Isolated config
python scripts/upload_rclone.py --file /path/to/large/file --verify
Option 2: WebDAV Upload + Auto Link Generation
export PAN123_ACCESS_TOKEN="your_token"
export PAN123_WEBDAV_USER="your_user"
export PAN123_WEBDAV_PASS="your_pass"
export RCLONE_CONFIG="$HOME/123pan-rclone.conf"
# Upload via WebDAV, then use API to find file and generate direct link
python scripts/upload_webdav_link.py --file /path/to/large/file
# Generate share link instead
python scripts/upload_webdav_link.py --file /path/to/large/file --link-type share
Note: WebDAV uploads may take 30-90 seconds to appear in API listings due to indexing delays.
- API details: references/api-reference.md