본문 바로가기
@capgo/capacitor-asset-cache 파일 및 스토리지 오픈 소스

에셋 캐시 Capacitor 플러그인

CDN 이미지와 비디오를 앱 로컬 스토리지에 캐싱하고 로컬 미디어 소스로 연결합니다

설치

bun add @capgo/capacitor-asset-cache bunx cap sync
npm, pnpm 또는 yarn
  • npm install @capgo/capacitor-asset-cache
  • pnpm add @capgo/capacitor-asset-cache
  • yarn add @capgo/capacitor-asset-cache

가이드

Capacitor에서 Asset Cache 사용하는 법

@capgo/capacitor-asset-cache 사용하기

@capgo/capacitor-asset-cache 대용량 CDN 이미지와 비디오를 앱 전용 영구 저장소에 저장한 뒤, Capacitor webview에서 사용할 수 있도록 로컬 소스 URL을 반환합니다.

설치

npm install @capgo/capacitor-asset-cache
npx cap sync

플러그인이 제공하는 기능

  • bind - 이미지나 비디오 요소를 로컬 에셋 소스에 연결하고, 준비되면 업데이트합니다.
  • src - 에셋이 로컬에 존재하면 로컬 소스 문자열을 반환합니다.
  • resolve - 로컬 소스와 캐시 메타데이터를 함께 반환합니다.
  • configure - 기본 CDN 및 재검증(revalidation) 동작을 설정합니다.
  • get, list, remove, clear, 그리고 getCacheSize - 필요할 때 캐시를 명시적으로 관리합니다.

사용 예시

CDN을 한 번 설정한 후, 상대 경로로 요소를 바인딩하세요:

import { AssetCache } from '@capgo/capacitor-asset-cache';

AssetCache.configure({
  cdnUrl: 'https://cdn.example.com/assets/',
  revalidate: {
    strategy: 'ttl',
    maxAgeSeconds: 86400,
  },
});

const hero = document.querySelector<HTMLImageElement>('#hero');

if (hero) {
  AssetCache.bind(hero, 'images/hero.jpg');
}

해당 요소는 data-asset-cache-state="loading" 네이티브 fetch가 실행되는 동안 대기하며, 로컬 소스 URL을 받으면 ready.

img[data-asset-cache-state='loading'],
video[data-asset-cache-state='loading'] {
  opacity: 0.45;
}

보호된 에셋

플러그인이 원격 파일을 가져오거나 재검증하는 동안 헤더가 전송됩니다. 웹 요소는 여전히 로컬 소스 URL만 수신합니다.

const src = await AssetCache.src('private/videos/intro.mp4', {
  cdnUrl: 'https://cdn.example.com/assets/',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

CDN Base URL을 사용하지 않는 경우

설정을 원하지 않는 경우 절대 URL을 전달하세요 cdnUrl.

const src = await AssetCache.src('https://cdn.example.com/assets/videos/intro.mp4');

상대 경로를 사용하려면 다음 중 하나가 필요합니다: cdnUrl 또는 호출 시마다 cdnUrl.

Storage 참고 사항

iOS에서 파일은 Application Support 아래에 저장되며 iCloud 백업에서 제외됩니다. Android에서는 앱 내부 파일 디렉토리에 저장됩니다. 시스템은 이 파일들을 일시적인 캐시 파일로 취급하지 않지만, 앱 삭제나 데이터 삭제 시에는 clear(), 그리고 remove() 여전히 삭제됩니다.

전체 레퍼런스

@capgo/capacitor-asset-cache 사용 계속하기

사용 중이라면 @capgo/capacitor-asset-cache 사용하기 지속적인 미디어 로딩을 계획하려면, 다음을 연결하세요: @capgo/capacitor-asset-cache 구현 세부 사항은, 시작하기 구현 세부 사항은, @capgo/capacitor-downloader 명시적인 백그라운드 다운로드는, @capgo/capacitor-file 일반적인 로컬 파일 액세스용.

자주 묻는 질문

Asset Cache plugin FAQ

Capacitor 앱에 Asset Cache plugin을 어떻게 설치하나요?

"bun add @capgo/capacitor-asset-cache" (또는 "npm install @capgo/capacitor-asset-cache")를 실행한 다음, "bunx cap sync"를 실행하여 iOS 및 Android 프로젝트에 네이티브 code가 반영되도록 하세요. 그 후 앱의 code에서 "@capgo/capacitor-asset-cache"를 통해 import 하면 됩니다.

@capgo/capacitor-asset-cache가 React, Vue, Angular와 호환되나요?

네. Asset Cache는 Capacitor 패키지이므로, Ionic, React, Vue, Angular, Svelte 및 일반 JavaScript를 포함하여 Capacitor에서 실행되는 모든 웹 프레임워크와 호환됩니다.

@capgo/capacitor-asset-cache은 어떤 Capacitor 버전을 지원하나요?

Capgo 플러그인은 Capacitor의 메이저 버전을 따릅니다. 사용 중인 Capacitor 메이저 버전과 일치하는 플러그인 메이저 버전을 사용하세요 (예: Capacitor 8에는 플러그인 v8). 유지 관리되는 버전은 GitHub README의 호환성 표에서 확인할 수 있습니다.

@capgo/capacitor-asset-cache는 무료 오픈 소스인가요?

네. code 소스 코드는 GitHub의 https://github.com/Cap-go/capacitor-asset-cache/ 에 공개되어 있으며, npm에서 무료로 설치할 수 있습니다. 버그 리포트와 pull request는 언제나 환영합니다.

App Store 심사 없이 Asset Cache를 사용하는 code를 업데이트할 수 있나요?

플러그인을 설치하거나 업그레이드하면 네이티브 code가 변경되므로 새로운 스토어 빌드가 필요합니다. 그 이후에는 플러그인을 호출하는 JavaScript, HTML, CSS 변경 사항을 Capgo live updates로 즉시 배포할 수 있습니다.

앱 심사 대기 없이 Asset Cache 변경 사항을 즉시 배포하세요

스토어 빌드에 플러그인이 포함되면, Capgo live updates로 JavaScript, HTML, CSS 변경 사항을 몇 분 만에 사용자에게 푸시할 수 있습니다.

Capgo로 시작하기