跳到正文
cccskills
免费在 GitHub 公开

mobile-files-media

Use this skill when working on camera, gallery, file pick/upload/download, file preview, sharing, or filesystem-backed media. For Preferences keys, use mobile-local-data.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md2.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

mobile-files-media — Canonical Skill

Purpose

Enforce the verified file/media pipeline with platform-safe URI handling.

When to use

Camera capture, photo picking, chunked upload, download/open/share, save to gallery, permissions, scoped-storage/sandbox paths.

Required reading

  • skills/mobile/FILES_MEDIA.md

Relevant project locations

  • src/composables/useFileSystem.ts (active picker/save path), src/composables/useUpload.ts (active upload path)
  • src/composables/useCamera.ts (currently no import callers)
  • src/composables/useFileDownload.ts, src/utils/FileUtils.ts
  • src/api/FileManagerService.ts

Mandatory rules

  1. Camera: getPhoto Uri + webUseInput, pickImages. Web has no gallery: savePicture/saveFile fall back to a browser download.
  2. Save pipeline: base64 → Filesystem.writeFile (Directory.Data) → Media.savePhoto into AppAlbumName album.
  3. Upload defaults: 1 MB chunks, one attempt unless maxRetries is overridden; FormData uploadChunkApi then merge DTO mergeChunkApi. In-memory chunk tracking is not restart-safe resume.
  4. Validate paths, MIME, filenames; respect scoped storage / sandbox; request minimal permissions with isWeb() guards.
  5. Blob URLs from fethCdnData must be released: use useBlobUrls() (track + auto-revoke on unmount), as BaseImage/BaseAvatar do. Downloads that must land on the device use useFileDownload.

Implementation workflow

  1. Trace the caller's capture/pick → convert → store/upload → cleanup chain; do not assume the unreferenced useCamera.ts is the active path.
  2. Handle permission-denied, cancel, retry-exhausted, large-file paths.
  3. Clean temp files; confirm user-visible export location.
  4. Verify per mobile-testing, incl. SECURITY (untrusted files).

Verification

Mocked picker/upload unit tests; real capture/save/share only on device.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use this skill when adding or changing REST API calls, HTTP client config, error handling, uploads/downloads, or network behavior.

中文简介正在准备中。当前显示原文说明。

bekaku/vue-ionic-example-app62026年10月20日 更新

Use this skill when working on login, logout, session restore, tokens, route guards, or any authentication and authorization behavior.

中文简介正在准备中。当前显示原文说明。

bekaku/vue-ionic-example-app62026年10月20日 更新

Use this skill when building, syncing Capacitor, or preparing Android/iOS releases and environment configuration.

中文简介正在准备中。当前显示原文说明。

bekaku/vue-ionic-example-app62026年10月20日 更新

Use this skill when creating, modifying, or debugging Ionic Vue components, pages, forms, dialogs, or theme/safe-area UI behavior.

中文简介正在准备中。当前显示原文说明。

bekaku/vue-ionic-example-app62026年10月20日 更新

Use this skill for any Ionic Vue + Capacitor mobile work: Vue architecture, Composition API, TypeScript, state, env config, shared conventions. Required for every implementation task alongside mobile-testing.

中文简介正在准备中。当前显示原文说明。

bekaku/vue-ionic-example-app62026年10月20日 更新

Use this skill when handling inbound URLs, custom schemes, app links, universal links, or URL-bearing notification payloads.

中文简介正在准备中。当前显示原文说明。

bekaku/vue-ionic-example-app62026年10月20日 更新

查看 bekaku 的全部技能

报告此技能的问题