v1.22.0 — 오픈소스 · MIT 라이선스

어디에든 임베드할 수 있는 파일 매니저

PHP ≥ 8.1 + Flysystem 3. Alpine.js UI. Local, S3, Cloudflare R2. 몇 줄의 JavaScript로 임베드.

PHP ≥ 8.1
프레임워크 불필요
~3 KB
SDK 번들 크기
MIT
오픈소스 라이선스
16
지원 언어
미리보기

실제 동작 확인

FluxFiles desktop file manager UI
FluxFiles mobile file manager UI
FluxFiles create folder modal
기능

현대적인 파일 매니저에 필요한 모든 것

유연성이 필요한 개발자를 위해 구축.

멀티 스토리지

로컬, AWS S3, Cloudflare R2 — Flysystem v3. 설정만으로 전환.

어디든 임베드

iframe + postMessage SDK. 독립 UI는 Alpine.js(빌드 없음). 모든 프레임워크와 호환.

JWT 인증 + 스코핑

사용자별 경로 접두사, 권한, 디스크 화이트리스트, owner-only 모드.

AI 자동 태그

Claude / OpenAI vision — alt 텍스트, 제목, 태그 자동 생성.

이미지 자르기

종횡비 프리셋이 있는 인라인 자르기 도구.

이미지 최적화

WebP 변형 자동 생성 — 썸네일, 중간, 대형.

사전 서명 업로드

브라우저에서 S3/R2로 직접 업로드 — 서버 대역폭 제로.

청크 업로드

10MB 초과 파일용 S3 멀티파트.

전체 텍스트 검색

SQLite FTS5로 이름, 제목, 태그 검색.

일괄 작업

다중 선택 이동, 복사, 삭제, 다운로드.

크로스 디스크 전송

로컬 ↔ S3 ↔ R2 간 복사/이동.

휴지통

복구 가능한 삭제, 자동 정리.

SEO 메타데이터

제목, alt, 캡션, 태그 — 클라우드는 S3 객체 메타데이터, 로컬은 sidecar JSON. 전체 텍스트 검색.

다크 모드

UI 및 SDK에서 라이트/다크/자동.

16개 언어

기본 영어. SDK, URL (?locale=), FLUXFILES_LOCALE로 설정. 아랍어 RTL.

감사 로그

모든 쓰기 작업 기록.

속도 제한

사용자별 토큰 버킷 API 보호.

저장소 할당량

JWT 클레임을 통한 사용자별 제한.

BYOB 버킷

사용자 자체 S3/R2 — JWT 내 자격 증명 암호화(AES-256-GCM).

중복 감지

SHA-256 일치 시 강제 덮어쓰기 전까지 중복 업로드 건너뜀.

SDK 토큰 갱신

401 시 onTokenRefresh — 갱신 병합, 재시도, updateToken()으로 사전 갱신.

빠른 설치

2분 만에 시작

composer require fluxfiles/fluxfiles
cp .env.example .env

# .env
FLUXFILES_SECRET=your-random-32-char-secret
FLUXFILES_ALLOWED_ORIGINS=https://yourapp.com

require_once 'vendor/autoload.php';

$token = fluxfiles_token(
    userId: 'user-123',
    perms: ['read', 'write', 'delete'],
    disks: ['local', 's3', 'r2'],
    prefix: 'user-123/',
    maxUploadMb: 10,
    allowedExt: null,
    ttl: 3600
);
composer require fluxfiles/laravel
php artisan vendor:publish --tag=fluxfiles-config

# .env — point the adapter at your FluxFiles server
FLUXFILES_ENDPOINT=https://fm.yourdomain.com
FLUXFILES_SECRET=your-secret-min-32-chars

# Optional: match CORS on the FluxFiles host
# FLUXFILES_ALLOWED_ORIGINS=https://yourapp.com

# Config: config/fluxfiles.php
<!-- Demo: unpkg. In production, serve fluxfiles.js from your FluxFiles host -->
<script src="https://unpkg.com/fluxfiles@1.22.0/fluxfiles.js"></script>

<script>
FluxFiles.open({
    endpoint: 'https://your-api.com',
    token: 'eyJhbGci...',
    disk: 'local',
    mode: 'picker',
    container: '#file-picker',
    onSelect: function(file) {
        console.log('Selected:', file.url);
    },
    async onTokenRefresh() {
        const r = await fetch('/api/auth/refresh-fluxfiles-token');
        const { token } = await r.json();
        return token;
    }
});
</script>
npm install @fluxfiles/react

import { FluxFilesModal } from '@fluxfiles/react';

<FluxFilesModal
    open={open}
    endpoint="https://your-api.com"
    token={token}
    onSelect={(file) => console.log(file)}
    onClose={() => setOpen(false)}
/>
npm install @fluxfiles/vue

<script setup>
import { FluxFilesModal } from '@fluxfiles/vue';
</script>

<FluxFilesModal
    v-model:open="open"
    endpoint="https://your-api.com"
    :token="token"
    @select="onSelect"
    @close="open = false"
/>
git clone https://github.com/thai-pc/fluxfiles.git
cd fluxfiles
composer install -d packages/core
cp .env.example .env

cd packages/core
php -S localhost:8080 router.php

# UI:  http://localhost:8080/public/index.html
# API: http://localhost:8080/api/fm/list?disk=local&path=

호환 프레임워크

Laravel WordPress React / Next.js Vue / Nuxt CKEditor 4 TinyMCE Any framework
왜 FluxFiles인가

다른 도구가 잊은 것을 구축

기능 FluxFiles elFinder Laravel-FM RichFilemanager Responsive FM
S3 + R2 + Local
모든 프레임워크에 임베드
JWT 인증 + 스코핑
SEO 메타데이터
AI 자동 태그
이미지 자르기
청크 업로드
전체 텍스트 검색
다크 모드
16개 언어
PHP ≥ 8.1
활발히 유지보수 중
현대적 UI