Skip to content

File Upload Configuration

Basic Description

As this section mainly relies on the original PicGo project, the documentation here is largely based on PicGo's manual with some additional modifications and supplements to fit PicList's usage.

The original PicGo manual can be found at:https://picgo.github.io/PicGo-Doc/zh/guide/config.html

The new or modified content in PicList will be marked in the document.

Configuration File Location PicList

The configuration file location of PicList varies depending on the operating system:

  • Windows: %APPDATA%\piclist\data.json
  • Linux: $XDG_CONFIG_HOME/piclist/data.json or ~/.config/piclist/data.json
  • macOS: ~/Library/Application\ Support/piclist/data.json

For example, on Windows, you can find it at:

C:\Users\YourUserName\AppData\Roaming\piclist\data.json

On Linux, you can find it at:

~/.config/piclist/data.json

The location on macOS is similar to Linux.

Note

The configuration file name of PicList-core is config.json.

Function Interface Partition

202305231741046

Upload Area

The upload area supports drag and drop uploading or clicking to open the file upload dialog.

It also supports uploading from the clipboard, uploading via URL, and other functions.

image

Image Preprocessing Settings 1.4.0+

Starting from version V1.4.0, PicList supports built-in image preprocessing functions before uploading, including:

  • Adding watermarks
  • Image compression
  • Image scaling
  • Image rotation
  • Format conversion
  • Remove EXIF information

These functions are designed to help users perform image preprocessing before uploading, reducing the space occupation in cloud storage.

Some PicGo plugins, such as picgo-plugin-watermark and picgo-plugin-compress, can also provide similar functionalities. However, these plugins have not been maintained for a long time and may not be as efficient as the built-in preprocessing functions in PicList. We recommend that you use the built-in module rather than the plugins.

Adding Watermarks

PicList supports two types of watermark adding: text watermark and image watermark.

The supported configuration parameters are:

json
"isAddWatermark": boolean, // Whether to add watermarks
"watermarkType": "text" | "image", // Watermark type
"isFullScreenWatermark": boolean, // Whether to add full-screen watermarks
"watermarkDegree": number, // Watermark rotation angle
"watermarkText": string, // Watermark text
"watermarkFontPath": string, // Watermark font path
"watermarkScaleRatio": number, // Watermark scale ratio relative to the original image
"watermarkColor": string, // Watermark color
"watermarkImagePath": string, // Watermark image path
"watermarkPosition": string // Watermark position
Text Watermark

Supported configurable parameters include:

  • Watermark text
  • Watermark font
  • Watermark color
  • Watermark rotation angle
  • Scale ratio of the watermark to the original image
  • Watermark position

The default font for text watermarks is simhei.ttf. The font will download from the network the first time you use the image uploading function.You can also provide your own font.

Before adding a watermark, PicList will first check if the font file exists. If it does not exist, it will automatically download the font file. However, due to network issues, the font file download may fail, and in this case, the addition of the watermark will be skipped.

Please check if the font file exists in the corresponding path according to your system. If it does not exist, please manually download the font file and then place it in the corresponding path.

Windows: %APPDATA%\piclist\assets\simhei.ttf Linux: $XDG_CONFIG_HOME/piclist/assets/simhei.ttf or ~/.config//assets/simhei.ttf macOS: ~/Library/Application\ Support/picgo/assets/simhei.ttf

Font file download link: https://release.piclist.cn/simhei.ttf

202305231746315

Image Watermark

Supported configurable parameters for image watermarks include:

  • Watermark image path
  • Watermark rotation angle
  • Scale ratio of the watermark to the original image
  • Watermark position

The default image watermark is PicList's text logo, but you can provide your own image watermark.

202305231748552

Image Editing

Image editing includes image compression, image scaling, and image rotation. Supported configurable parameters include:

json
"quality": number, // Image compression quality 0-100
"isReSize": boolean, // Whether to resize by a fixed size
"reSizeWidth": number, // Resized width, if set to 0, it will be automatically calculated according to the height
"reSizeHeight": number, // Resized height, if set to 0, it will be automatically calculated according to the width
"skipReSizeOfSmallImg": boolean, // Whether to skip resizing for small images
"isReSizeByPercent": boolean, // Whether to resize by percentage
"reSizePercent": number, // Scaling percentage
"isRotate": boolean, // Whether to rotate
"rotateDegree": number, // Rotation angle
"isFlip": boolean, // Whether to flip vertically
"isFlop": boolean // Whether to flip horizontally

Note that PicList provides two scaling modes: scaling by a fixed size and scaling by percentage. These two scaling modes are mutually exclusive, so you can only choose one.

The priority is: scaling by percentage > scaling by fixed size.

Format Conversion

Warning

Some platforms only support specific image formats, please be aware of platform restrictions. When converting to jpg format, PicList use mozJPEG by default.

Supported configurable parameters include:

json
"isConvertFormat": boolean, // Whether to convert format
"convertFormat": string // Converted format
"formatConvertObj": Object // Format conversion parameters

Supported formats for conversion include:

FormatExtension
AVIFavif
DeepZoomdz
FITSfits
HEIFheif
Inputinput
JPEGjpeg, jpg
JPEG 2000jp2
JPEG XLjxl
ImageMagickmagick
OpenSlideopenslide
PDFpdf
PNGpng
PPMppm
Raw image dataraw
SVGsvg
TIFFtiff, tif
Vicarv
WebPwebp

formatConvertObj is an object used for detailed conversion configuration for different image formats, for example:

json
{
  "isConvert": true,
  "convertFormat": "webp",
  "formatConvertObj": {
    "jpg" : "png",
    "png" : "jpg"
  }
}

In this case, during the conversion, images in jpg format will be converted to png format, images in png format will be converted to jpg format, and all other image formats will be converted to webp format.

Remove EXIF Information

json
"isRemoveExif": boolean // Whether to remove EXIF information

EXIF information is the metadata of the image, including shooting time, shooting equipment, shooting location, etc. Sometimes we do not want this information to be leaked, so PicList provides the function of removing EXIF information.

When enabled, the uploaded image will not contain EXIF information.

Using CLI Command Line

PicList's image preprocessing feature supports command line usage, and you need to install PicList Core. Please refer to the README for specific installation methods.

After installation, you can use the picgo set buildin watermark command to set the watermark adding function and the picgo set buildin compress command to set the image editing function. Then, you can upload images by using the picgo upload command.

Clipboard Image Upload

By clicking the Clipboard Image button, you can upload images in the clipboard.

By default, the script is used to get clipboard images. You can open Use Built-in Clipboard Upload in the settings to use Electron's built-in clipboard module to obtain them.

Besides, you can open or close the auto-clipboard upload function by right-clicking the taskbar tray icon, mini window, or MacOS's top bar and dock icon. When it is turned on, PicList will monitor the images in the clipboard. When an image is detected, it will be uploaded automatically.

Upload via URL

Tip

PicList removes the limitation of PicGo, which can only upload images via URL.

You can upload images via URL, and the URL must start with "http" or "https".

URLs must contain the image extension, such as https://example.com/test.jpg, otherwise the upload may fail.

PicList will specially process the image extension for images from WeChat official accounts, so you can directly copy the image link from WeChat official accounts to upload.

202305231749998

It supports viewing all the images you have successfully uploaded, The top bar of the album will display the number of pictures in the current album.

Clicking on an image allows you to preview it. Clicking the icon below the image allows you to copy the link or delete the image. You can control whether to delete cloud images by selecting the Sync Delete Cloud option in the upper right corner.

202305231754343

Edit Image Information

Sometimes, you may need to modify the URL of the uploaded image later, such as changing "http" to "https", or adding some operation suffixes (e.g., ?imgslim supported by Qiniu). You can click the "Edit" button to modify it.

image

You can quickly switch the link format you want to copy in the album area.

202305231755918

Select All and Shift Multi-selection Support

The album operation area supports Select All operation and also supports simple multi-selection across images using the Shift key.

Cloud Delete PicList+

In PicList, you can control whether to delete cloud images by selecting the Sync Delete Cloud option in the upper right corner of the album.

Currently supported image hosts or plugins include:

image

Advanced Search and Sort PicList+

Advanced features can be found in the toolbar at the top of the album.

In PicList, in addition to the basic cloud classification and file name search of PicGo, there are also functions of searching by upload time and searching by URL.

Additionally, both file name and URL searches support regular expressions. For example, \d{4}-\d{2}-\d{2} can match date formats such as 2020-01-01.

The final result is the intersection of all search conditions.

In addition, PicList adds sorting functions in the album, which supports sorting by file name, file extension, upload time, or selected status.

Clicking again in the same way can toggle the sort direction.

202305231757789

Batch Modify URL PicList+

Click the Modify button in the toolbar at the top of the album to pop up the dialog for batch modifying the URL.

Batch modification is performed by matching the URL with a regular expression and then replacing it with a specified string. In the string, special placeholders can be used for replacement.

The supported placeholders are:

PlaceholderDescription
{Y}Year, 4 digits
{y}Year, 2 digits
{m}Month, 2 digits
{d}Date, 2 digits
{h}Hour, 2 digits
{i}Minute, 2 digits
{s}Second, 2 digits
{ms}Millisecond, 3 digits
{timestamp}Timestamp (milliseconds)
{md5}Random MD5 string
{md5-16}Random MD5 string (16 digits)
{uuid}UUID string
{str-number}Random string, length is number
{filename}Original file name
{auto}Incremental number

202405102243007

PicList supports short link function, which can be found in the top toolbar of the album, supporte c1n.cn, Yourls and xyTom/Url-Shorten-Worker.

After enabling the short link function, when copying the image link, the image link will be automatically converted to a short link.

Image Host Settings

SM.MS

Official website: https://sm.ms, for users in Mainland China, please visit https://smms.app

Official documentation: https://doc.sm.ms/

Configuration

json
{
  "_configName": "", // Image host configuration name
  "token": "", // SM.MS token, required
  "backupDomain": "" // Backup domain, optional
}

202305231801548

Explanation

Note

For users in Mainland China, please fill in smms.app for backupDomain, otherwise the upload may fail.

Register and log in to the smms backend to obtain the token value.

smms

Advanced

Similar to the plugin picgo-plugin-web-uploader, PicList supports setting various image hosting parameters independently. Only use it when you have a certain understanding of network requests and image hosting.

Configuration

json
{
  "_configName": "", // Configuration name
  "endpoint": "", // endpoint
  "method": "", // method
  "formDataKey": "", // key of form data
  "headers": "{}", // headers
  "body": "{}", // body
  "customPrefix": "", // custom prefix
  "resDataPath": "", // path of response data
}

202407301338249.webp

Explanation

endpoint

Please fill in the image hosting upload interface address, which can generally be found in the API documentation of the image hosting.

method

Please fill in the request method, such as POST, PUT, etc.

formDataKey

Please fill in the key of the form data, which is generally used for file uploads.

headers

Fill in the request header, JSON format, for example:

json
{
  "Authorization": "Bearer token"
body

Fill in the request body, JSON format, for example:

json
{
  "key": "value"
}
customPrefix

Custom prefix, after filling in, the image link after successful upload will be prefixed with this prefix.

resDataPath

PicList will obtain the image link according to this path. For example, if the return data is:

json
{
  "code": 200,
  "data": {
    "url": "https://example.com/image.jpg"
  }
}

Then you need to fill in data.url.

AList

PicList supports AList internally, please refer to the official documentation for setup.

Configuration

json
{
  "_configName": "", // Configuration name
  "url": "", // AList URL
  "token": "", // Administrator token, choose between username/password and token
  "username": "", // Username, choose between token and username/password
  "password": "", // Password, choose between token and username/password
  "uploadPath": "", // Upload path, optional
  "webPath": "", // Web path, optional
  "customUrl": "" // Custom domain name, optional
}

202407051559098

Explanation

url

Please fill in your AList URL, for example https://alist.example.com, be sure to include http:// or https://.

token & username & password

AList supports two upload methods: using an administrator token or using a username and password.

If you use an administrator token, fill in the token, which can be obtained by entering the admin backend and clicking Settings -> Other -> Token.

If you are not an administrator, you can log in using your username and password, and PicList will automatically obtain and refresh the token.

uploadPath

uploadPath is an optional field. If not filled in, the file will be stored in the root directory of AList by default.

For example, if you fill in images/test/, the file will be stored in the corresponding test directory.

webPath

webPath is an optional field. If not filled in, it will default to the same as the upload path.

For example, if you fill in images/test/, the external network access address of the file will be https://alist.example.com/images/test/filename.

customUrl

customUrl is an optional field. If not filled in, the domain name filled in the url parameter will be used when copying links, previewing images, etc.

Qiniu Cloud

Official website: https://www.qiniu.com/

Official documentation: https://developer.qiniu.com/kodo

Configuration

json
{
  "_configName": "", // Configuration name
  "accessKey": "",
  "secretKey": "",
  "bucket": "", // Bucket name
  "url": "", // Access URL
  "area": "", // Storage area code
  "options": "", // URL suffix, such as ?imgslim
  "path": "" // Custom storage path, such as img/
}

202305231803783

Explanation

accessKey & secretKey

You need to create or view your accessKey and secretKey in the Qiniu Cloud

accessKey

bucket & area

Access https://portal.qiniu.com/kodo/bucket to create buckets, view your bucket list and corresponding storage areas.

Please set the bucket permissions to public read, otherwise the uploaded images cannot be displayed in the album.

Note

The storage area code filled in the app is a region code, not the actual Chinese name.

Please visit the Qiniu Cloud official documentation - Storage Region or refer to the table below for codes.

RegionRegion Code
East China-Zhejiangz0
East China-Zhejiang2cn-east-2
North China-Hebeiz1
South China-Guangdongz2
North America-Los Angelesna0
Asia-Pacific-Singaporeas0
Asia-Pacific-Seoulap-northeast-1
Asia-Pacific-Heneiap-southeast-2
url

The access URL is the test domain name assigned by Qiniu Cloud or the domain name you bind yourself. If you have not bound a domain name, you can see how to bind a domain name in the Qiniu Cloud official documentation - Binding Domain Name.

The bound domain name must be a domain name that has been filed, otherwise it cannot be accessed normally.

When filling in, be sure to add http:// or https://.

path/Storage Path

The storage path is an optional field. If it is not filled out, it will be stored in the root directory of the bucket by default.

For example, if you fill in images/test/, the file will be stored in the corresponding test directory.

Don't forget the trailing /.

options/Website suffix

Qiniu Cloud provides image processing functions, which are generally used for operations such as cropping, scaling, rotating, and adding watermarks to images.

Usage: add the website suffix to the external network access address of the file, for example: http://xxx.com/xxx.jpg?imageView2/2/w/500/h/500, which will crop the image to a thumbnail of 500x500.

For detailed usage of website suffixes, please refer to Image Style.

If the usage of this function exceeds the free quota, additional processing fees will be incurred. For specific fees, please refer to Image Processing Fees.

The website suffix is an optional field. If it is not filled out, the original address will be copied.

Tencent Cloud COS

Official website: https://www.tencentcloud.com/products/cos

Official documentation: https://www.tencentcloud.com/document/product/436

Configuration

json
{
  "_configName": "", // Image hosting configuration name
  "secretId": "",
  "secretKey": "",
  "bucket": "", // Storage bucket name, different for v4 and v5 versions
  "appId": "", // For example, 1250000000
  "area": "", // Storage area, such as ap-beijing-1
  "path": "", // Custom storage path, such as img/
  "customUrl": "", // Custom domain name, be sure to include http:// or https://
  "version": "v5" | "v4", // COS version, v4 or v5
  "options": "", // Website suffix, such as ?imageMogr2/thumbnail/500x500
  "slim": boolean // Whether to enable image compression
}

tencent cos configure

V4 Version Instructions

Please refer to the PicGo official manual.

As the V4 version is already quite old, PicList will no longer actively update V4-related features and will not consider removing support in the future.

V5 Version Instructions

secretId & secretKey & appId

You need to create or view your secretId, secretKey, and appId in the Tencent Cloud API Key Management page.

accessKey

bucket & area

Create a bucket and view your bucket list and corresponding storage areas.

The format of the bucket is bucketname-appId, where appId corresponds to the above appId.

Please set the storage bucket permissions to public read, otherwise uploaded images will not be displayed in the album.

Note

The storage area filled in the APP is the area code, not the actual Chinese name.

Please visit the Tencent Cloud Official Document - Regions and Access Endpoints or refer to the table below to query the code.

Storage AreaRegion Abbreviation
Beijing Zone 1ap-beijing-1
Beijingap-beijing
Nanjingap-nanjing
Shanghaiap-shanghai
Guangzhouap-guangzhou
Chengduap-chengdu
Chongqingap-chongqing
Shenzhen Financeap-shenzhen-fsi
Shanghai Financeap-shanghai-fsi
Beijing Financeap-beijing-fsi
Hong Kong (China)ap-hongkong
Singaporeap-singapore
Mumbaiap-mumbai
Jakartaap-jakarta
Seoulap-seoul
Bangkokap-bangkok
Tokyoap-tokyo
Silicon Valley (US West)na-siliconvalley
Virginia (US East)na-ashburn
Torontona-toronto
São Paulosa-saopaulo
Frankfurteu-frankfurt
Moscoweu-moscow
path/storage path

The storage path is an optional item. If not filled in, it will be stored in the root directory of the bucket by default.

For example, if you fill in images/test/, the file will be stored in the corresponding test directory.

customUrl/Custom Domain

Warning

Make sure to include http:// or https:// in the URL.

Custom domain is an optional feature. If not specified, Tencent Cloud's default public domain will be used for actions such as copying links or previewing images.

For example, if the file test.jpg is stored in the directory images/test/, the bucket name is test-1250000000, and the storage region is ap-beijing, then the default public domain will be test-1250000000.cos.ap-beijing.myqcloud.com, and the file access URL will be https://test-1250000000.cos.ap-beijing.myqcloud.com/images/test/test.jpg.

However, if a custom domain is specified, the public access URL for the file will be http://custom-domain/images/test/test.jpg.

options/Website Suffix

Tencent Cloud provides image processing capabilities, generally used for operations such as image cropping, scaling, rotating, and watermarking.

Usage: add the website suffix after the public access URL of the file, such as https://test-1250000000.cos.ap-beijing.myqcloud.com/images/test/test.jpg?imageMogr2/thumbnail/500x500.

For detailed website suffix usage, please refer to the Image Processing Guide.

If the usage of this feature exceeds the free quota, additional processing fees will be charged. For specific fees, please refer to the Image Processing Fees.

The website suffix is optional. If not specified, the original address will be copied.

slim/Compression

Refer to the Tencent Cloud Official Document - Image Compression for detailed usage.

Upyun

Official Website: https://www.upyun.com/

Official Documentation: https://docs.upyun.com/api/

Configuration

json
{
  "_configName": "", // Configuration name for the image hosting service
  "bucket": "", // Storage space name, which is your service name
  "operator": "", // Operator name
  "password": "", // Password for the operator
  "options": "", // Some suffix processing parameters for images
  "path": "", // Custom storage path, such as img/
  "url": "", // Accelerated domain name, be sure to include http:// or https://
  "antiLeechToken": "", // Anti-leech token
  "expireTime": "" // Anti-leech expiration time
  "endpoint": "" // API endpoint, optional
}

20240114063407.webp

Description

bucket

You can create a service (corresponding to a bucket) and view the service list by visiting https://console.upyun.com/services/file/.

bucket

operator & password

After entering the service, click on Storage Management, and you can view and modify the operator at the bottom. The password is the corresponding password of the operator.

It is recommended to grant the operator read, write, and delete permissions.

bucket

url/Accelerated Domain Name

The accelerated domain name is a test domain name assigned by Upyun or a domain name bound by yourself. If you have not bound a domain name, you can learn how to bind it in Upyun Official Documentation-How to create a CDN service for self-hosted sources?.

The bound domain name must be a pre-registered domain name, otherwise it cannot be accessed normally.

Be sure to include http:// or https://.

path/Storage Path

The storage path is an optional item. If not filled in, it will be stored in the root directory of the bucket by default.

For example, if you fill in images/test/, the file will be stored in the corresponding test directory.

options/Website Suffix

Upyun provides a free image processing function, which is generally used for operations such as cropping, scaling, rotating, and watermarking.

Parameter format:

html
Image URL + delimiter + parameters or thumbnail version

For detailed suffix usage, please refer to Image Processing.

The website suffix is an optional item. If not filled in, the original address will be copied.

antiLeechToken & expireTime

If you want to use the anti-leech function, you need to fill in the anti-leech token and expiration time.

endpoint

Optional parameter, default is https://v0.api.upyun.com.

Refer to the official documentation and fill in your service node.

Optional nodes include:

  • https://v0.api.upyun.com:Automatic node selection
  • https://v1.api.upyun.com:China Telecom
  • https://v2.api.upyun.com:China Unicom
  • https://v3.api.upyun.com:China Mobile

GitHub

Official Website: https://www.github.com

Official Documentation: https://docs.github.com/en/rest

Configuration

json
{
  "_configName": "", // Image hosting configuration name
  "repo": "", // Repository name in the format of username/reponame
  "token": "", // Github token
  "path": "", // Custom storage path, e.g. img/
  "customUrl": "", // Custom domain name, be sure to add http:// or https://
  "branch": "" // Branch name, default is main
}

202305232157614

Description

repo/Repository Name

Register an account on https://github.com and get your username after successful registration.

Create a new repository, and if it is used as an image hosting, remember to create a public repository.

Then fill in the username/reponame format according to your own repository.

token

Access: https://github.com/settings/tokens, and then click Generate new token(Classic).

bucket

Check the repo box and set the expiration time according to your needs. Then scroll down to the bottom of the page and click the green Generate token button to generate the token.

bucket

Warning

The token will only be displayed once, please copy the token and store it in a secure place.

path/Storage path

Optional parameter used to specify the image storage path. If not filled in, it will be stored in the root directory of the repository by default.

branch

Optional parameter used to specify the image storage branch. If not filled in, it will be stored in the default branch by default.

customUrl/Custom domain name

Optional parameter used to specify the custom domain name of the image, usually used for CDN acceleration.

For example, if jsDelivr acceleration is used, you can fill in https://cdn.jsdelivr.net/gh/{github username}/{reponame}@{branch}/, where {github username}, {reponame}, and {branch} correspond to the Github username, repository name, and branch name, respectively.

Alibaba Cloud

Official website: https://www.aliyun.com/product/oss

Official documentation: https://help.aliyun.com/product/31815.html

Configuration

json
{
  "_configName": "", // Image hosting configuration name
  "accessKeyId": "",
  "accessKeySecret": "",
  "bucket": "", // Bucket name
  "area": "", // Storage area code
  "path": "", // Custom storage path
  "customUrl": "" // Custom domain name, be sure to add http:// or https://
}

202305232157544

Description

accessKeyId & accessKeySecret

You need to create or view your accessKeyId and accessKeySecret in the Alibaba Cloud AccessKey management page, which can be accessed in two ways:

  1. Access management page URL directly
  2. After logging in to Alibaba Cloud, click the avatar in the upper right corner, and select AccessKey management.

accessKeyId

bucket & area

Please set the storage bucket permission to public read in Aliyun Console > Object Storage Service (OSS) > Bucket List, or directly visit https://oss.console.aliyun.com/bucket to view your bucket list and corresponding storage regions.

If the storage bucket permission is not set to public read, the uploaded images will not be displayed in the album.

TIP

The storage region entered in the app is the region code, not the actual Chinese name.

Please refer to the following table to find the corresponding code or visit the official Aliyun documentation.

RegionRegion Code
China (Hangzhou)oss-cn-hangzhou
China (Shanghai)oss-cn-shanghai
China (Nanjing - Local Region)oss-cn-nanjing
China (Fuzhou - Local Region)oss-cn-fuzhou
China (Wuhan - Local Region)oss-cn-wuhan
China (Qingdao)oss-cn-qingdao
China (Beijing)oss-cn-beijing
China (Zhangjiakou)oss-cn-zhangjiakou
China (Hohhot)oss-cn-huhehaote
China (Ulanqab)oss-cn-wulanchabu
China (Shenzhen)oss-cn-shenzhen
China (Heyuan)oss-cn-heyuan
China (Guangzhou)oss-cn-guangzhou
China (Chengdu)oss-cn-chengdu
China (Hong Kong)oss-cn-hongkong
US (Silicon Valley)oss-us-west-1
US (Virginia)oss-us-east-1
Japan (Tokyo)oss-ap-northeast-1
South Korea (Seoul)oss-ap-northeast-2
Singaporeoss-ap-southeast-1
Australia (Sydney)oss-ap-southeast-2
Malaysia (Kuala Lumpur)oss-ap-southeast-3
Indonesia (Jakarta)oss-ap-southeast-5
Philippines (Manila)oss-ap-southeast-6
Thailand (Bangkok)oss-ap-southeast-7
India (Mumbai)oss-ap-south-1
Germany (Frankfurt)oss-eu-central-1
UK (London)oss-eu-west-1
UAE (Dubai)oss-me-east-1
China Mainlandoss-rg-china-mainland
path/Storage path

Path is an optional field. If not specified, the file will be stored in the root directory of the bucket.

For example, if you enter images/test/, the file will be stored in the corresponding test directory.

customUrl

Custom URL is an optional field. If not specified, the default external domain name of Aliyun will be used when copying links, previewing images, and other operations.

For example, if the file test.jpg is stored in the directory images/test/, the bucket name is test-bucket, and the storage region is Hangzhou 1, the external access address of the file is https://test-bucket.oss-cn-hangzhou.aliyuncs.com/images/test/test.jpg.

If you specify a custom domain name, the external access address of the file will be http://customdomain/images/test/test.jpg.

Please note to include http:// or https://.

options/Website suffix

Alibaba Cloud OSS provides image processing functions, which are commonly used for operations such as cropping, scaling, rotating, and watermarking of images.

To use this function, append the website suffix to the external network access address of the file, for example, https://test-bucket.oss-cn-hangzhou.aliyuncs.com/images/test/test.jpg?x-oss-process=image/resize,m_fill,h_100,w_100.

For detailed usage of website suffix, please refer to OSS New Image Processing Guide.

If the usage of this function exceeds the free quota, additional processing fees will be charged. For specific fees, please refer to OSS Image Processing Fees.

The website suffix is optional. If left blank, the original address will be copied.

Imgur

Tips

Access to Imgur in mainland China is restricted, and a proxy must be set up to upload images.

Official website: https://imgur.com/

Official documentation: https://apidocs.imgur.com/

Configuration

json
{
  "_configName": "", // Configuration name
  "clientId": "", // Imgur clientId
  "username": "", // imgur username
  "accessToken": "", // imgur accessToken
  "album": "", // imgur album name
  "proxy": "" // Proxy address, only supports http proxy
}

202305232157459

Description

clientId

Tips

clientId is used for anonymous access to the Imgur API. If you want to upload images to your own account, you need to fill in the username and accessToken fields.

If you haven't generated a clientId yet, please log in to Imgur first, then go to https://api.imgur.com/oauth2/addclient, fill in the Application name, chooseOAuth 2 authorization without a callback URL for Authorization Type, and click Submit to generate a clientId.

cilentId

If you have already generated a clientId, log in to the Imgur website, click on the profile picture in the upper right corner, choose Settings, and you can find it on the Applications page.

Or visit https://imgur.com/account/settings/apps to view it directly.

cilentId

username/accessToken

If you want to upload images to your own account, you need to fill in the username and accessToken fields.

If you have not generated an accessToken, please log in to Imgur first, then visit https://api.imgur.com/oauth2/authorize?client_id={clientId}&response_type=token, where {clientId} is your clientId, click Allow, at this time the browser address bar will jump to https://imgur.com/#access_token={accessToken}&expires_in=315360000&token_type=bearer&refresh_token={refreshToken}&account_username={username}&account_id={accountId}, where {accessToken} is your accessToken.

album/Album name

Album name is an optional field. If not filled in, the uploaded image will not be added to the album.

proxy/http proxy

Due to well-known reasons, Imgur cannot be accessed in mainland China under normal circumstances, so please configure the proxy yourself.

The format of the proxy is http(s)://127.0.0.1:{port}, where {port} is the proxy port number.

WebDAV

WebDAV

Configuration

json
{
  "_configName": "", // Configuration name
  "host": "", // WebDAV address
  "username": "", // Username
  "password": "", // Password
  "path": "", // Storage path
  "webpath": "", // Web path
  "customUrl": "", // Custom domain
  "sslEnabled": boolean, // Whether to enable SSL
  "authType": "basic" | "digest", // Authentication type
  "options": "" // Website suffix
}

202401140645779.webp

Description

host

Required parameter used to specify the domain name of WebDAV, which can be an IP address or a domain name. If an IP address is used, please specify the port number.

username & password

Required parameters used to specify the username and password for WebDAV.

path/Storage path

The storage path is an optional parameter. If not filled in, it will be stored in the root directory of WebDAV by default.

For example, if you fill in images/test/, the file will be stored in the corresponding test directory.

webpath/Web path

Web path is an optional parameter. If not filled in, it will be the same as the storage path by default.

This path is used to splice the image access address. For example, if you fill in images/test/, the image access address will be https://host/images/test/.

customUrl

The custom domain is an optional parameter. If not filled in, the host domain name will be used for copying links, previewing images, and other operations.

sslEnabled

Please choose whether to enable SSL based on whether your WebDAV is accessed via HTTPS.

authType

Default is basic, you can choose digest if you need.

options/Website suffix

Customize the URL suffix for special operations.

Local image hosting

Local image hosting refers to using a local folder as an image hosting service. The uploaded images will be stored in the folder. For example, you can use Rclone to mount cloud storage to a local path, and then use the path as a local image hosting service.

Configuration

json
{
  "_configName": "", // Image hosting configuration name
  "path": "", // Storage path
  "customUrl": "", // Custom domain name, be sure to add http:// or https://
  "webPath": "" // Web path
}

202305232153761

Description

path

Required parameter used to specify the storage path of the local image hosting service.

customUrl

Custom domain name is an optional parameter. If not filled in, the local path above will be used when copying links, previewing images, and other operations.

webpath

Web path is an optional parameter. If not filled in, it will be the same as the storage path by default.

This path is used to splice the image access address. For example, if you fill in images/test/, the image access address will be https://host/images/test/.

Built-in SFTP

Used to upload files to remote servers via SFTP.

Configuration

json
{
  "_configName": "", // Image hosting configuration name
  "host": "", // host
  "port": number, // port, default is 22
  "username": "", // username
  "password": "", // password
  "privateKey": "", // private key path
  "passphrase": "", // private key password
  "uploadPath": "", // upload path
  "customUrl": "", // custom domain
  "webPath": "", // web path
  "fileUser": "", // user and group of file
  "fileMode": "", // file permission
  "dirMode": "", // directory permission
}

202401180320402.webp

Description

host

Required parameter used to specify the host name of SFTP, which is generally the IP address of the server.

port

Optional parameter, default is 22. If you have modified the port number for SSH login, please modify it accordingly.

username & password

username is a required parameter used to specify the username of SFTP.

password is an optional parameter. If you use password login, please fill in the password. But it is generally not recommended to use password login, but to use private key login.

privateKey & passphrase

privateKey is an optional parameter. If you use private key login, please fill in the private key path.

passphrase is an optional parameter. If your private key has a password, please fill in the private key password.

uploadPath

Required parameter used to specify the upload path of SFTP, which is the real storage path of the file on the server.

customUrl

Optional parameter, if not filled in, the host name above will be used when copying links, previewing images, and other operations.

webpath

Optional parameter, if not filled in, it will be the same as the upload path by default. This path is used to splice the image access address. For example, if you fill in images/test/, the image access address will be https://host/images/test/.

fileUser

Optional parameter, used to specify the user group and user settings of the file, the format is user:group, for example www-data:www-data. If there is only a user name, for example www-data, the default user group is www-data.

fileMode

Optional parameter, used to specify the permission of the file, the default is 0644.

dirMode

Optional parameter, used to specify the permission of the directory, the default is 0755.

Lsky Pro

You need to build the server yourself for Lsky Pro, please refer to Lsky Pro.

Configuration

json
{
  "_configName": "", // Image hosting configuration name
  "host": "", // host
  "version": "V1" | "V2", // version
  "token": "", // token
  "strategyId": "", // strategyId
  "albumId": "", // albumId
  "permission": "public" | "private", // permission
}

202401240602859.webp

Description

host

The address of the server, for example https://www.lsky.pro.

version

Server version, currently supports V1 and V2. Note that only V2 version supports cloud deletion.

token

When filling in the token, please note that it needs to start with Bearer, for example Bearer 123456789.

To view the token of V1 version, please visit the personal settings page.

Using the cURL command to get the V2 version token:

bash
curl --location --request POST 'https://{host}/api/v1/tokens' \
--form 'email="{email}"' \
--form 'password="{password}"'

Replace {host}, {email}, and {password} with your own information, and then execute the command to get the token.

strategyId

If you are a user who uses the default storage strategy for V1 or V2, please leave it blank. V2 users can view it on the personal settings page.

albumId

Album ID is used to specify which album the picture is uploaded to. If not filled in, it will be uploaded to the default album.

Permission

Permission is used to set the permission of the picture, optional parameter, default is private.

Built-in AWS S3

Built-in AWS S3 image hosting service, which can support various object storage compatible with S3 protocol, such as amazon s3, cloudflare R2, backblaze B2, minio, etc.

The domestic cloud service providers also provide S3 compatible object storage, such as Alibaba Cloud's OSS, Tencent Cloud's COS, Huawei Cloud's OBS, etc.

Different S3 object storage may have different configuration items, please refer to the official documentation of each object storage.

Configuration

json
{
  "_configName": "", // configuration name
  "accessKeyID": "", // accessKeyID
  "secretAccessKey": "", // secretAccessKey
  "bucketName": "", // bucketName
  "uploadPath": "", // uploadPath
  "region": "", // region
  "endpoint": "", // endpoint
  "proxy": "", // http proxy
  "urlPrefix": "", // custom domain
  "pathStyleAccess": boolean, // whether to enable S3 Path Style
  "rejectUnauthorized": boolean, // whether to reject unauthorized SSL certificates
  "acl": "", // permission
  "disableBucketPrefixToURL": boolean, // whether to disable bucket prefix
}

202401242311986.webp

Description

accessKeyID & secretAccessKey

accessKeyID and secretAccessKey is the API access key used to access S3 object storage. Please refer to the official documentation of your object storage to obtain it.

bucketName

Bucket name is the name of the bucket you created in the object storage.

uploadPath

Upload path supports placeholders, available placeholders are:

payloaddescription
{year}current year
{month}current month
{day}current day
{fullName}full file name (with extension)
{fileName}file name (without extension)
{extName}extension name (without .)
{md5}image MD5 value
{sha1}image SHA1 value
{sha256}image SHA256 value
{timestamp}Unix timestamp
{timestampMS}Unix timestamp (millisecond)

For example, if your upload path is images/{year}/{month}/{day}/{fullName}, the image will be stored in the corresponding folder according to the date.

region

Please fill in according to the actual situation, for example us-east-1, if it is cloudflare R2, please fill in auto.

endpoint

Please fill in according to the actual situation, for example https://s3.us-east-1.amazonaws.com.

proxy

If your object storage cannot be accessed directly, please configure the proxy yourself.

urlPrefix

urlPrefix is an optional item. If not filled in, the terminal node above will be used when copying links, previewing images, and other operations.

pathStyleAccess

Optional parameter, default is false. When using minio, this option needs to be enabled.

If not enabled, the URL format is https://{bucketName}.{endpoint}/{uploadPath}. If enabled, the URL format is https://{endpoint}/{bucketName}/{uploadPath}.

rejectUnauthorized

Optional parameter, default is false. If your object storage uses a self-signed certificate, you need to set it to false.

acl

Default is public-read, optional parameter.

disableBucketPrefixToURL

When pathStyleAccess is enabled, whether to disable adding the bucket prefix to the final generated URL.

PicList

As PicList and PicList-core both support enabling the built-in server, PicList can be used as an image hosting service in PicList (nesting).

配置项

json
{
  "_configName": "", // configuration name
  "host": "", // server address
  "port": number, // server port
  "picbed": "", // image hosting name
  "configName": "", // image hosting configuration name
  "serverKey": "", // server key
}

202401242330982.webp

Description

host

The server address where PicList or PicList-core is running, which can be an IP address or a domain name.

port

The server port where PicList or PicList-core is running.

picbed

The name of the image hosting service to be uploaded to, for example github.

configName

Configuration name of the image hosting service to be uploaded to, for example github.

serverKey

Server key set to verify the request.

Other image hosting services

PicList is compatible with PicGo's plugin ecosystem. Please use plugins for other image hosting services.

PicList plans to integrate more image hosting services into the built-in functionality in the future, so stay tuned.


General Settings

System Settings

202305231738573

Language

PicList currently supports three languages: Simplified Chinese, Traditional Chinese, and English. You can choose your favorite language here.

Startup mode

PicList supports startup mode selection, of which Windows and Linux systems support the following startup modes:

  • Silent startup: PicList will run in the background without displaying a window, but will display an icon in the system tray.
  • Mini window: PicList will display an icon in the system tray and automatically display the mini window.
  • Main window: PicList will display an icon in the system tray and automatically display the main window.

Mac systems support the following startup modes:

  • Silent startup: PicList will run in the background without displaying a window, but will display an icon in the top bar.
  • Hide top bar: PicList will not display an icon in the top bar, but will display an icon in the Dock bar.
  • Main window: PicList will display an icon in the top bar and automatically display the main window.

Note that PicList also supports turning on or off the dock bar icon, but does not allow turning off both the top bar and dock bar icons at the same time.

Default main window size

You can set the default size of the main window when it starts, the default value is 1200x800.

If you choose Original PicGo size, it will be the same as PicGo, and the size when it starts will be 800x450.

Mini Window Always on Top

If you choose to enable this option, the mini window will always be displayed on top of other windows.

Custom mini window icon

You can use your favorite icon to replace the icon of the mini window.

Startup on boot

Choose whether to start up on boot.

Customize shortcuts

The default upload shortcut is Cmd+Alt+U [Mac] or Ctrl+Alt+U [Windows].

Click on PicList settings in the sidebar to modify the shortcuts. This will open the shortcut panel, where you can choose to enable or disable shortcuts:

image

Click "Edit", then click the input box in the opened dialog, and press the shortcut keys you want (it can also be a combination of keys). Then click OK to save (otherwise it will not take effect!).

Plugins can also add their own shortcuts, and the added shortcuts will be displayed in the shortcut panel.

Sync and Configurations

202305232158020

Set configuration synchronization

Warning

When using Gitee, be sure to open Allow repository files to be edited online in Repository page-Management-Function Settings, otherwise an error will be reported.

You can set the synchronization configuration here. Currently, PicList supports using Github, Gitea or Gitee for configuration synchronization.

Files that need to be synchronized include data.json, data.bak.json that save the general configuration, and manage.json, manage.bak.json that save the management interface configuration.

Parameters that need to be set include:

json
{
  "type": "github", // github/gitee/gitea
  "username": "", // username
  "repo": "", // repository name
  "branch": "", // branch name
  "token": "", // token
  "proxy": "" // proxy
}

202305232158515

Upload and download configuration files 1.8.4+

After setting the synchronization configuration, you can manually upload or download the configuration file here.

Currently, PicList does not support automatic synchronization.

Migration from PicGo 1.5.0+

If you have used PicGo before, you can migrate the PicGo configuration to PicList here. The imported configuration includes the data.json file and the album file.

Open configuration file

You can click to open the data.json file. Please do not modify this file at will, otherwise PicList may not work properly.

Upload Settings

202305232159016

Auto import configuration on management page

After turning on, PicList will automatically import the image hosting information that has been configured in the image hosting every time you open the management page.

Synchronize cloud files when deleting from album PicList+

When turned on, when you delete a picture in the album, the cloud file will be automatically deleted.

You can also adjust the setting by clicking the Sync Delete Cloud button in the upper right corner of the album interface.

Upload Prompt

After opening, a prompt box will pop up every time you upload an image to indicate that it is uploading.

If you find that it has no effect after opening, please pay attention to whether you have turned off the system-level message notification option.

Set image watermark and compression-format conversion parameters

Please refer to Image Preprocessing Settings.

Manually rename before uploading

If you want to have a chance to change the file name of your image before uploading, you can choose to enable renaming before uploading.

After that, a small window will pop up when you upload, allowing you to rename the file.

If you do not want to rename, you can click OK, Cancel, or simply close the window. If you want to rename, enter the desired name in the input box, then click OK. This feature also supports batch uploading.

Automatic timestamp naming

When turned on, it will automatically replace the uploaded file name with a timestamp to avoid file name duplication or to protect privacy.

The timestamp format is YYYYMMDDHHmmSSS, for example, 202305232159473.

Advanced renaming

Tip

The priority of advanced renaming is lower than that of automatic timestamp naming. If automatic timestamp naming is turned on, advanced renaming will not take effect. Please do not turn on other renaming plugins at the same time, otherwise it may cause renaming failure.

Advanced renaming supports the following placeholders:

PlaceholderDescription
{Y}Year, 4 digits
{y}Year, 2 digits
{m}Month, 2 digits
{d}Date, 2 digits
{h}Hour, 2 digits
{i}Minute, 2 digits
{s}Second, 2 digits
{ms}Millisecond, 3 digits
{timestamp}Timestamp (ms)
{md5}Random MD5 string
{md5-16}Random MD5 string (16)
{uuid}UUID string
{str-number}Random string, number is a number, indicating the length of the string, for example {str-8} is 8 bits
{filename}File name
{localFolder:<number>}The folder where the original file is located, number is a number, indicating the level of interception

Please combine according to your own needs, for example:

bash
{Y}{m}{d}-{md5-16}

Delete local pictures after uploading

After turning on, PicList will automatically delete the local pictures after each successful upload.

Auto Copy URL After Upload

Enabled by default, it will automatically copy the URL to the clipboard after uploading.

PicList has built-in five link formats:

  • Markdown:![Image name](Image link)
  • HTML:<img src="Image link" />
  • URL:Image link
  • UBB:[img]Image link[/img]
  • Custom

Custom supports using three variables: $fileName, $extName, and $url, which represent the file name, file extension, and image link, respectively. For example, you can set it to $url?x-oss-process=image/resize,m_fill,h_100,w_100, so that the Alibaba Cloud OSS image processing function can be automatically added after uploading.

202305232159473

Shorten URL

You can choose from two short link services:

  1. Short link service provided by c1n, you need to fill in the API Token when using this service.
  2. Self-built YOURLS short link service, you need to fill in the YOURLS domain name and signature when using this service.
  3. xyTom/Url-Shorten-Worker

Encode URL when copying

Close by default. After turning on, the special characters in the URL will be escaped, such as # will be escaped to %23.

The built-in image hosting in PicList has been escaped when outputting the URL, so in most cases you don't need to turn on this option.

Use Built-in Clipboard to Upload

If you encounter problems with clipboard uploads, such as residual processes, you can consider enabling this option.

Automatically listen for clipboard uploads when the software starts

Closed by default. After turning on, the clipboard upload will be automatically monitored when the software starts.

Select the image hosting service to display

So in order to simplify the display, you can choose only the image bed you want to display, so that the sidebar will not have a scroll bar. However, it should be noted that this only shows/hides and does not remove the corresponding functionality. If you hide Qiniu Cloud, you can still upload images through Qiniu Cloud.

Advanced Settings

202305232200028

Set log file

You can open and view the log file in this setting, and also set the output log type (such as success, failure, or no output, etc.).

In addition, PicList will actively control the size of the log file, with a default maximum of 10MB, and will automatically clean up the log file after it exceeds this size.

202305232200535

Proxy Settings

Support simple HTTP proxy settings. Click on Set Proxy to access.

202305232201698

  • For the proxy during upload, please configure Upload Proxy
  • If it is for the proxy for plugin installation, please configure Plugin Installation Proxy
  • If it is for the setting of the npm mirror source during plugin installation, you can set Plugin Mirror Address

PicGo-Server Settings

PicList will internally enable a small server by default, which is used in conjunction with other applications to call for uploading. If you need to use applications such as Typora and Obsidian to upload images, you need to enable this feature.

The recommended listening address is the default 127.0.0.1 (local), and the recommended port is the default 36677.

202305232201184

Encrypt key for server response

To ensure the security of the data returned by the interface, PicList will encrypt sensitive data returned by the interface. You can set the encryption key here.

Update Settings

202305232203683

Check for Updates

Used to actively initiate update checks. If there is a new version, you will be prompted to update.

Switch update assistant

PicList will check for the latest version every time it starts. If the current version is lower than the latest version, you will be prompted to update. If you do not want to receive this message, you can turn off the Open update assistant option in settings.

Tip

It is recommended to turn on this feature, as new versions usually fix bugs and add new features.

Plugin Settings

You can install, update, disable, uninstall, configure, and use all PicGo plugins through the Plugin page.

202305232203872

Install Plugins

Warning

You must install Node.js before you can install plugins, because PicList uses npm to install plugins.

Search for the plugin name in the search bar of the plugin interface. The plugin name starts with picgo-plugin-, so you only need to search for the name after the prefix. For example, a picgo-plugin-wow plugin, you only need to search for wow.

After finding the plugin, just click Install in the lower right corner. If you encounter the prompt that the plugin is not optimized for GUI, you can ask the plugin author whether the plugin is suitable for use in PicGo software, otherwise it may only be a command-line plugin.

Offline Installation

PicList supports importing local plugins (folders). The import requirement is a complete picgo plugin folder. It can be used to offline install picgo plugin packages or plugin developers for self-testing. The entry for importing plugins is on the right side of the title bar in the Plugin Settings page:

image

Update Uninstall and Disable

All of them can be selected in the menu that pops up when you click the gear button in the lower right corner of the plugin.

Warning

But if you choose Update, you need to restart it once to use the updated plugin. PicList will give a Restart button on the plugin page, click it. Just closing the main window and opening it again is not enough, you must completely exit the PicList process and open it again.

Plugin Configuration

Some plugins have configuration items or their own menu items, which can be configured directly by clicking the gear in the lower right corner:

image

Look for more plugins

You can find super awesome PicGo plugins in the Awesome-PicGo of PicGo official, and PicList is compatible with all these plugins.

Plugin Development

If you want to develop plugins, you can refer to the plugin development documentation of PicGo.

Released under the MIT License.