入門指南
3 種方式快速建立安全的預覽連結
入門指南
PreviewFile.dev 提供三種核心方式建立安全的預覽連結,適合輕量用戶、企業用戶與開發者快速上手。
第一次使用?本指南會透過範例帶你完成三種常見情境。
情境 1:直接 URL 預覽(免登入)
適用:快速分享任意網頁資源(圖片、影片、PDF 等),隱藏原始網址
操作步驟
-
造訪短鏈生成端點
https://previewfile.dev/u?url=[YOUR_ORIGINAL_URL]範例:
https://previewfile.dev/u?url=https://example.com/sensitive-document.pdf -
取得預覽連結
- 系統自動生成短鏈:
/p/abc123xyz - 完整連結:
https://previewfile.dev/p/abc123xyz
- 系統自動生成短鏈:
-
分享
- 訪問
/p/abc123xyz即可查看 - 原始 URL 完全隱藏
- 連結依配置自動過期(預設 1 小時)
- 訪問
範例情境
用例:分享公司內部報告且不暴露 S3 路徑
# 瀏覽器輸入
https://previewfile.dev/u?url=https://s3.company.com/reports/Q3-2025.pdf
# 回傳短鏈
https://previewfile.dev/p/x7k2m9n
# 將短鏈分享給團隊優勢
- ✅ 無需註冊登入
- ✅ 立即生成預覽連結
- ✅ 隱藏原始地址
- ✅ 自動過期保護
情境 2:瀏覽器上傳檔案(需登入)
適用:上傳本地檔案線上預覽,並配置進階安全策略
操作步驟
-
造訪首頁
- 開啟
https://previewfile.dev - 看到上傳元件
- 開啟
-
拖曳/選取檔案
- 拖到上傳區域,或點擊「上傳檔案」
-
登入提示
- 首次上傳會要求登入
- 支援 GitHub / Google / 信箱快捷登入
-
可選安全策略
- 有效期:15 分鐘 ~ 7 天(受方案限制,預設 1 小時)
- 動態浮水印:加入水印文字
- 禁止下載:僅可線上檢視
- 一次性連結:訪問一次即失效
-
生成預覽連結
- 點擊「生成預覽連結」
- 獲得
/p/[shortUrl]地址
-
管理紀錄
- 在 Dashboard 查看歷史預覽
- 手動刪除或等候自動過期
範例情境
用例:設計師向客戶分享只讀設計稿
- 上傳
design-final.psd - 勾選「禁止下載」
- 將「動態浮水印」設為「Client Preview Only」
- 設定有效期 24 小時
- 取得連結
https://previewfile.dev/p/d3s1gn42 - 客戶只能線上查看,無法下載原稿
優勢
- ✅ 支援本地檔案上傳
- ✅ 彈性安全策略
- ✅ 登入後可統一管理紀錄
- ✅ 適合企業內部協作
情境 3:開發者 API 整合
適用:在應用中整合檔案預覽,批次生成預覽連結
端點
POST /api/u
Content-Type: application/json
x-api-key: YOUR_API_KEY請求範例
{
"url": "https://example.com/document.pdf",
"ttlMinutes": 60,
"watermark": "Confidential",
"noDownload": true,
"oneTime": false
}回應範例
{
"success": true,
"data": {
"shortUrl": "a1b2c3d4",
"previewUrl": "https://previewfile.dev/p/a1b2c3d4",
"expireAt": "2025-10-02T15:30:00Z",
"status": "READY"
}
}整合示例
Node.js
const fetch = require('node-fetch');
async function createPreview(originalUrl) {
const response = await fetch('https://previewfile.dev/api/u', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.PREVIEWFILE_API_KEY}`
},
body: JSON.stringify({
url: originalUrl,
ttlMinutes: 120,
noDownload: true
})
});
const result = await response.json();
return result.data.previewUrl;
}
// 使用
const previewLink = await createPreview('https://cdn.company.com/invoice-2025.pdf');
console.log('Preview link:', previewLink);Python
import requests
def create_preview(original_url):
response = requests.post(
'https://previewfile.dev/api/u',
headers={
'Content-Type': 'application/json',
'Authorization': f'Bearer {API_KEY}'
},
json={
'url': original_url,
'ttlMinutes': 120,
'noDownload': True
}
)
data = response.json()
return data['data']['previewUrl']
# 使用
preview_link = create_preview('https://cdn.company.com/invoice-2025.pdf')
print(f'Preview link: {preview_link}')應用場景
-
SaaS 整合
- 上傳後自動生成預覽連結
- 在郵件通知中加入臨時連結
-
CRM
- 與客戶分享合約/發票
- 自動設定有效期與下載限制
-
內部協作
- 批次生成團隊文件的預覽地址
- 集中管理權限與有效期
優勢
- ✅ RESTful,易於整合
- ✅ 支援批量操作
- ✅ 完整錯誤處理與重試
- ✅ 可平滑嵌入既有系統
安全策略說明
1. TTL(有效期)
- 可設定 15 分鐘到 7 天(受方案限制,預設 1 小時)
- 到期自動失效
- 適合臨時分享、敏感文件
2. 動態浮水印
- 在預覽頁覆蓋文字水印
- 可包含使用者名稱、時間戳
- 適合版權保護、稽核
3. 禁止下載
- 只能線上查看
- 阻擋右鍵儲存、拖曳下載
- 適合設計審核、合約預覽
4. 一次性連結
- 首次訪問後立即過期
- 適合密碼傳遞、一次性授權
FAQ
Q1:免費用戶有哪些限制?
答:每月 10 次預覽,單檔 10MB,最長 24 小時有效期。
Q2:上傳檔案存放在哪?
答:檔案加密儲存,到期自動刪除。付費用戶可選擇私有部署。
Q3:預覽連結可以修改嗎?
答:不可修改,可刪除舊連結後重新生成。
Q4:支援哪些檔案類型?
答:圖片(JPG/PNG/GIF/WebP)、PDF、影片(MP4/WebM)、Office 文件等。
Q5:API 有速率限制嗎?
答:免費 10/天,付費 100-10000/天(依方案而定)。
下一步
需要協助? 聯繫:[email protected]