常见问题 FAQ
关于 PreviewFile.dev 的功能、定价、安全与技术实现的常见问题。
通用问题
什么是 PreviewFile.dev?
PreviewFile.dev 是一个安全的文件预览服务,可为 110+ 文件格式生成短期、可自定义的预览链接。无需暴露原始 URL 或要求下载即可分享 PDF、Office 文档、图片、视频等内容。
→ 了解更多请查看入门指南
支持哪些文件格式?
我们支持 110+ 格式,包括:
- 文档:PDF、DOCX、PPTX、XLSX、TXT、MD
- 图片:JPG、PNG、GIF、WebP、SVG、TIFF
- 视频:MP4、WebM、MOV、AVI
- 代码:JS、Python、Java、Go 等 50+ 语言
- 压缩包:ZIP、RAR、7z、TAR
→ 完整列表见支持的格式
定价如何?
- 免费:每月 100 次预览,15 分钟 TTL
- Pro:每月 10,000 次预览,自定义水印,24 小时 TTL
- 团队:每月 100,000 次预览,白标,SSO
- 企业:无限额度、SLA、专属支持
→ 方案对比见定价
技术问题
如何生成预览链接?
使用 REST API 以编程方式创建预览链接:
curl -X POST https://previewfile.dev/api/u \
-H "x-api-key: $API_KEY" \
-d '{"url": "https://example.com/file.pdf", "ttlMinutes": 60}'→ 完整指南见 API 文档
你们会存储文件吗?
不会。 我们仅缓存元数据和缩略图。
→ 架构细节见安全策略
可以用于敏感文件吗?
可以,建议启用以下安全功能:
- 限时链接:5 分钟至 24 小时自动过期
- 水印:添加自定义文字水印
- 禁止下载:仅可在线查看
- 一次性链接:首次访问后即过期
→ 选项详见安全策略
链接过期后会怎样?
过期链接会显示“链接已失效”页面。预览元数据会被自动删除,缓存的缩略图会在 1 小时内清除。
可以在应用内嵌入预览吗?
可以,使用 <iframe>:
<iframe src="https://previewfile.dev/p/abc123"
width="100%" height="600px"></iframe>团队版支持域名白名单以限制可嵌入来源。
→ 详情见 API 文档
安全问题
原始 URL 会泄露吗?
不会。接收者只会看到短链接(如 previewfile.dev/p/abc123),原始文件地址不会在浏览器或网络日志中出现。
水印如何工作?
水印通过 Canvas/GPU 在客户端渲染,可自定义文字、位置与透明度。团队版支持自定义字体与 Logo。
→ 配置指南见安全策略
可以按 IP 或来源限制访问吗?
可以(团队及以上)。可配置:
- IP 白名单:仅允许指定 IP
- Referrer 限制:阻止盗链
- User-Agent 校验:防止爬虫
→ 高级控制见安全策略
是否符合 GDPR/HIPAA?
企业版提供:
- 数据处理协议(DPA)
- 全量访问审计日志
- 数据区域可选
- SOC 2 Type II 认证
如需合规文件请联系销售。
产品问题
免费版和 Pro 版有什么差别?
| 功能 | 免费 | Pro |
|---|---|---|
| 月度预览次数 | 100 | 10,000 |
| 最大 TTL | 15 分钟 | 24 小时 |
| 自定义水印 | ❌ | ✅ |
| 下载控制 | ✅ | ✅ |
| 一次性链接 | ✅ | ✅ |
→ 更多对比见定价
可以做白标吗?
可以(团队及以上)。可定制:
- 自定义域名(
preview.yourdomain.com) - 品牌化页眉/页脚
- 自定义 CSS 主题
- 移除 “Powered by PreviewFile” 页脚
如需设置请联系销售。
是否有 API 速率限制?
有,按套餐区分:
- 免费:100 次/小时
- Pro:1,000 次/小时
- 团队:10,000 次/小时
- 企业:自定义
超出返回 HTTP 429,并带 Retry-After 头。
→ 参考见 API 文档
可以查看使用分析吗?
可以,仪表盘提供:
- 生成的预览总数
- 热门文件
- 地理分布
- 格式占比
- 过期模式
团队版包含 CSV 导出与 Webhook 通知。
集成问题
支持哪些开发语言?
提供示例:
- JavaScript/Node.js、Python、Java、C#、Go
- Rust、PHP、Ruby、Swift、Kotlin
→ 代码示例见 API 文档
可与 AWS S3 / Google Cloud 配合吗?
可以。先从存储生成签名 URL,再传给 PreviewFile:
const s3Url = await getSignedUrl(s3Client, getObjectCommand);
const preview = await fetch('/api/u', {
body: JSON.stringify({ url: s3Url })
});请确保签名 URL 的有效期长于预览 TTL。
有 SDK 吗?
官方 SDK 即将发布,目前可用标准 HTTP 客户端调用 REST API。
→ 可在 GitHub Discussions 提交需求
可以自托管吗?
企业版提供 Docker/Kubernetes 清单的本地部署选项。请联系销售获取许可。