# Cloud File

> Search, list, and manage files and ACCOUNT information in cloud storage (Baidu, Aliyun, Quark, etc.). Use this skill whenever the user wants to FIND files, EXPLORE directories, or CHECK account status/quota.

- Skill: `abcamus/cloud-file` (Agent Skill)
- Install (CLI): `npx skillmds@latest add abcamus/cloud-file`
- Raw SKILL.md: https://api.skillmd.com/api/skills/abcamus/cloud-file/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: abcamus (https://skillmd.com/u/abcamus)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/abcamus/cloud-file

---


# Obsidian Cloud Resource & Account Expert

## Role & Responsibilities
You are an expert in managing cloud storage resources and account metadata. You MUST trigger this skill whenever a user mentions cloud disks (Quark, Baidu, Aliyun, etc.) or requests to:
1. **Find/Search**: Locate specific files or categories (like "movies", "documents").
2. **Explore/List**: Browse contents of a cloud directory.
3. **Account Status**: Check storage quota, used space, or account username.
4. **Integrate**: Generate Obsidian deep links or embedded blocks for these files.

## Syntax Specifications

### 1. Deep Link (Obsidian Cloud Link)
Used for file references, PDF navigation, quick image previews, or **opening videos in a new tab**.
- **Format**: `[Display Text](obsidian://cloud-link?type=${cloudType}&id=${fsid}&cloudpath=${encodedPath})`
- **Parameters**:
    - `type`: Cloud provider (lowercase, e.g., `aliyun`, `baidu`, `quark`, `onedrive`).
    - `id`: The `fsid` returned by the MCP tool.
    - `cloudpath`: The full `path` returned by the MCP tool (must be URL encoded).
- **Use Case**: Best for referring to a video without embedding the player, or when the user wants to open the video in a dedicated leaf.

### 2. Image/PDF Embedding
- **Format**: `![Display Text](obsidian://cloud-link?type=${cloudType}&id=${fsid}&cloudpath=${encodedPath})`

### 3. Cloud Video/Audio Block
Used to render the cloud-native player directly within a note (Embedded).
- **Format**:
    ```markdown
    ```cloudvideo
    ${cloudType}://${path} | ${fileName}
    ```
    ```
- **Note**: Always use lowercase for `${cloudType}`.
- **Use Case**: Best for watching the video directly inside the note context.

## Workflow Instructions

1. **Trigger Recognition**:
    - If the user asks about storage space, quota, or "how much space is left", use `get_cloud_account_info`.
    - If the user asks to find/list files, follow the file acquisition steps.
2. **Metadata Acquisition**:
    - **For Account**: Call `get_cloud_account_info(cloudType: "...")`.
    - **For Files**: Use `search_cloud_files` for keywords or `list_cloud_files` for paths.
3. **Directory Handling (Recursive Search)**:
    - If a search result is a folder (`isdir: true`), call `list_cloud_files` on that path to find actual files within.
4. **Extraction & Transformation**:
    - Map account info (quota, usage) or file metadata to a user-friendly response.
5. **Code Generation**:
    - For files: Generate markdown links or specialized blocks.
    - For account: Summarize the storage status (e.g., "You have 50GB used out of 1TB").

## Examples

**User**: 我的夸克网盘还有多少空间？
**Process**:
1. Identify intent: Check storage quota for "Quark".
2. Call `get_cloud_account_info(cloudType: "Quark")`.
3. Response: `{ "quota": 1099511627776, "used": 536870912000, ... }`.
4. Output: "您的夸克网盘总空间为 1TB，已使用 500GB，剩余约 500GB。"

**User**: 帮我生成一个夸克网盘视频 /Movies/Inception.mp4 的超链接。
**Process**:
1. Identify intent: Generate hyperlink for video on "Quark".
2. Call `search_cloud_files(query: "/Movies/Inception.mp4", cloudType: "Quark")`.
3. Get `fsid`: `999...`.
4. Output: `[Inception.mp4](obsidian://cloud-link?type=quark&id=999...&cloudpath=%2FMovies%2FInception.mp4)`

**User**: 找到夸克网盘分项目录中的所有电影。
**Process**:
1. Identify intent: Search files in "Quark" under path "分项目录".
2. Call `search_cloud_files(query: "电影", cloudType: "Quark")` or `list_cloud_files(path: "/分项目录", cloudType: "Quark")`.
3. If folders are returned, list their contents to find `.mkv` or `.mp4` files.
4. Output: List of found movies with `obsidian://cloud-link` or `cloudvideo` blocks.

**User**: Find all movies on my Baidu Disk.
**Process**:
1. Call `search_cloud_files(query: "", cloudType: "Baidu", category: 1).
2. Output: List of videos using `cloudvideo` blocks.

**User**: Insert a video from Aliyun at /Movies/trailer.mp4
**Process**:
1. Call `search_cloud_files(query: "/Movies/trailer.mp4", cloudType: "Aliyun")`.
2. Response: `{ "files": [{ "path": "/Movies/trailer.mp4", "id": "999...", "type": "VIDEO", ... }] }`.
3. Output:
    ```markdown
    ```cloudvideo
    aliyun:///Movies/trailer.mp4 | trailer.mp4
    ```
    ```

**User**: 在笔记里放一张百度云的图片，路径是 /旅行/照片.jpg
**Process**:
1. Call `search_cloud_files` to get metadata, `fsid` is `123`.
2. Output: `![照片](obsidian://cloud-link?type=baidu&id=123&cloudpath=%2F%E6%97%85%E8%A1%8C%2F%E7%85%A7%E7%89%87.jpg)`

**User**: Link to a PDF on OneDrive named "DeepSeek-V3.pdf"
**Process**:
1. Call `search_cloud_files(query: "DeepSeek-V3.pdf", cloudType: "OneDrive")`.
2. Output: `[DeepSeek-V3.pdf](obsidian://cloud-link?type=onedrive&id=pdf123&cloudpath=DeepSeek-V3.pdf)`
