What Cloud Storage Providers Does PicList Support? A Complete Technical Guide

PicList supports over 20 cloud storage providers including Alibaba Cloud OSS, Tencent Cloud COS, Amazon S3, Qiniu, Huawei Cloud OBS, DogeCloud, and self-hosted options like Alist, SFTP, WebDAV, and GitHub, all managed through a unified plugin architecture defined in src/renderer/utils/static.ts.

PicList, an open-source image hosting and management tool maintained by kuingsmile/piclist, provides extensive cloud storage integration through its modular PicBed system. Understanding what cloud storage providers PicList supports is essential for configuring your workflow, whether you need enterprise-grade object storage or self-hosted alternatives.

Complete List of Cloud Storage Providers Supported by PicList

The definitive registry of supported providers resides in src/renderer/utils/static.ts, specifically within the picBedsCanbeDeleted array that enumerates every back-end PicList can manage, synchronize, and delete files from.

Major Cloud Object Storage Services

PicList natively integrates with leading cloud object storage platforms:

  • aliyun – Alibaba Cloud OSS, configured via access keys and bucket regions
  • tcyun – Tencent Cloud COS, supporting standard and custom domains
  • qiniu – Qiniu Cloud Object Storage with automatic zone detection
  • huaweicloud-uploader – Huawei Cloud OBS for enterprise deployments
  • aws-s3 / aws-s3-plist – Amazon S3 and variant configurations supporting signature v4
  • dogecloud – DogeCloud OSS (Cloudflare-based) with temporary token support via getTempToken in src/main/manage/utils/dogeAPI.ts

Image Hosting and CDN Services

Beyond traditional object storage, PicList supports specialized image hosting platforms:

  • smms – SM.MS image hosting
  • imgur – Imgur cloud hosting with OAuth support
  • upyun – Upyun Object Storage and CDN
  • lskyplist – LskyPro image hosting integration
  • github – GitHub repository storage via raw file URLs

Self-Hosted and Protocol-Based Storage

For users requiring on-premises or custom infrastructure:

  • alist / alistplist – Self-hosted Alist file list service
  • sftpplist – SFTP-based storage for secure file transfer
  • webdavplist – WebDAV server compatibility
  • local – Local filesystem storage for testing and offline workflows
  • piclist – PicList's own built-in storage format

How PicList Manages Cloud Storage Providers

PicList implements a layered architecture to standardize operations across diverse storage back-ends.

Provider Registry in static.ts

The src/renderer/utils/static.ts file serves as the central registry. The picBedsCanbeDeleted array defines which providers support file deletion, while picBedManualUrlList maps each provider to its configuration documentation URL. For example, the Aliyun entry links to https://piclist.cn/en/configure.html#alibaba-cloud.

Provider-Specific API Implementations

Each cloud storage provider has a dedicated implementation under src/main/manage/apis/:

  • tcyun.ts – Tencent COS implementation with URL construction following the pattern https://${bucket}.cos.${region}.myqcloud.com
  • s3plist.ts – Generic S3 logic handling region-specific endpoints and signature calculations
  • dogeAPI.ts – DogeCloud-specific utilities including dogecloudApi and getTempToken for temporary credential generation

Unified CRUD and Sync Engine

PicList abstracts provider differences through unified interfaces:

  • Deletion API – src/main/apis/delete/allApi.ts imports provider-specific classes (e.g., DogeCloudApi, HuaweicloudApi) and exposes a common delete method used by the gallery view
  • Sync Engine – src/main/utils/syncSettings.ts coordinates bidirectional synchronization, comparing local gallery metadata against remote storage and handling uploads or deletions based on user preferences

Alibaba Cloud OSS Configuration

Configure Aliyun OSS by specifying credentials in the PicList settings:

{
  "picBed": {
    "aliyun": {
      "accessKeyId": "<Your AccessKey ID>",
      "accessKeySecret": "<Your AccessKey Secret>",
      "bucket": "my-piclist-bucket",
      "region": "cn-hangzhou",
      "customUrl": ""
    }
  }
}

The configuration UI links to the official guide at https://piclist.cn/en/configure.html#alibaba-cloud as defined in picBedManualUrlList.en.aliyun.

DogeCloud Upload Script

For programmatic uploads using DogeCloud's temporary token system:

// Example script using PicList's scripting system
import { getTempToken, dogecloudApi } from '~/manage/utils/dogeAPI'

async function uploadFile(path, file) {
  const token = await getTempToken('ACCESS_KEY', 'SECRET_KEY')
  const res = await dogecloudApi('/oss/putObject', {
    bucket: token.bucket,
    region: token.region,
    key: path,
    body: file
  }, true, token.accessKeyId, token.secretAccessKey)
  return res
}

This utilizes the dogecloudApi and getTempToken functions defined in src/main/manage/utils/dogeAPI.ts.

Tencent Cloud COS File Deletion

To delete objects from Tencent COS programmatically:

import { deleteObject } from '~/manage/apis/tcyun'

await deleteObject({
  bucketName: 'my-bucket',
  region: 'ap-guangzhou',
  key: 'images/photo.png'
})

The deleteObject function constructs the endpoint URL using the pattern https://${bucket}.cos.${region}.myqcloud.com as implemented in src/main/manage/apis/tcyun.ts.

Summary

  • PicList supports over 20 cloud storage providers ranging from major object storage services (Alibaba Cloud, Tencent Cloud, AWS S3) to self-hosted solutions (Alist, SFTP, WebDAV).
  • The picBedsCanbeDeleted array in src/renderer/utils/static.ts serves as the definitive registry of supported providers.
  • Each provider has dedicated API implementations under src/main/manage/apis/ with standardized CRUD operations unified through src/main/apis/delete/allApi.ts.
  • Configuration documentation URLs are mapped in picBedManualUrlList within static.ts, linking to official setup guides at piclist.cn.

Frequently Asked Questions

Does PicList support Amazon S3-compatible storage?

Yes, PicList includes built-in support for Amazon S3 through the aws-s3 and aws-s3-plist providers. The implementation in src/main/manage/apis/s3plist.ts handles region-specific endpoints and signature v4 authentication, making it compatible with any S3-compatible service including MinIO, Wasabi, and DigitalOcean Spaces.

Can I use PicList with self-hosted storage solutions?

Absolutely. PicList supports several self-hosted options including Alist (alist/alistplist), SFTP (sftpplist), and WebDAV (webdavplist). These providers are implemented in dedicated modules under src/main/manage/apis/ and allow you to connect to private infrastructure without relying on commercial cloud services.

How does PicList handle file deletion across different providers?

PicList implements a unified deletion interface in src/main/apis/delete/allApi.ts that imports provider-specific classes such as DogeCloudApi and HuaweicloudApi. When you delete a file through the gallery view, the system dispatches to the appropriate provider's delete method, ensuring consistent behavior whether you're using Tencent COS, Alibaba OSS, or GitHub storage.

Where can I find configuration instructions for a specific provider?

Configuration documentation URLs are centralized in the picBedManualUrlList object within src/renderer/utils/static.ts. Each provider maps to a specific anchor link on piclist.cn, such as https://piclist.cn/en/configure.html#alibaba-cloud for Aliyun OSS. Clicking the "Configure" button in the PicList UI automatically opens the relevant documentation page.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →