Loving Tina? us on GitHub0.0k

文档

学习

v.Latest
Documentation
基于仓库的媒体
目录

TinaCMS 提供了内置的基于仓库(git)的媒体存储选项。或者,您可以将您的CMS连接到外部媒体存储提供商。

基于仓库的媒体将您的资产与内容放在一起,这意味着您可以跟踪代码和媒体的更改并回滚版本

这还有其他好处,如减少依赖性、使用外部API、本地开发和预览环境之间的同步。

看不到您的媒体?要在媒体管理器中查看您的媒体,您需要在媒体管理器中按下“同步媒体”按钮。这将从 GitHub 拉取所有媒体并将其添加到 TinaCMS。

配置

要在您的项目中配置基于仓库的媒体,请在 tina/config.{ts,js} 中的架构定义中添加以下内容

//tina/config.{ts,js}
export default defineConfig({
// ...
media: {
tina: {
publicFolder: 'public',
mediaRoot: 'uploads',
static: false, //默认是 false
},
},
});

资产存储路径

publicFolder 设置为您网站的“public”文件夹的路径。此路径是相对于您项目的根目录的。

对于任何 NextJS 网站(例如我们的 tina-cloud-starter),此值应为 "public"

媒体存储路径

媒体文件夹的路径,相对于 publicFolder 值。

如果您希望将媒体上传到 publicFolder 的根目录,请将其设置为 ""

此目录中的任何内容都将与 TinaCloud 的媒体服务器同步,图像将公开可访问。

媒体权限

static 属性决定了是否可以通过编辑器直接上传、编辑或删除媒体文件。

  • static: true 编辑者不能上传/删除媒体(静态资产)
  • static: false(默认):编辑者可以上传/删除媒体(动态资产)。

支持的媒体类型

默认支持以下文件类型

格式

MIME 类型

示例

Adobe InDesign

application/x-indesign

.indd

Apple HTTP Live Streaming

application/vnd.apple.mpegurl

.m3u8

二进制文件

application/octet-stream

.bin

Filmbox

model/fbx

.fbx

GL 传输格式 (JSON)

model/gltf+json

.gltf

图像

image/*

.jpg, .png, .gif, 等等

JSON

application/json

.json

JSON-LD

application/ld+json

.jsonld

材料交换格式

application/mxf

.mxf

Microsoft Excel (旧版)

application/vnd.ms-excel

.xls

Microsoft Excel (OpenXML)

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

.xlsx

Microsoft Word (旧版)

application/msword

.doc

Microsoft Word (OpenXML)

application/vnd.openxmlformats-officedocument.wordprocessingml.document

.docx

MPEG-DASH

application/dash+xml

.mpd

PDF

application/pdf

.pdf

多边形文件格式

model/ply

.ply

PostScript

application/postscript

.ps, .eps, 等等

文本文件

text/*

.txt, .md, 等等

U3D 网格

model/u3d+mesh

.u3d

USDZ 压缩包

model/vnd.usdz+zip

.usdz

视频

video/*

.mp4, .avi, .mkv, 等等

如果您想指定自己的允许文件类型,请在 media 属性中添加以下内容

//tina/config.{ts,js}
export default defineConfig({
// ...
media: {
tina: {
//..
},
accept: ['image/jpeg', 'video/mp4'],
},
});

NextJS 图像

如果您使用的是 NextJS 图像,您需要在 next.config.js 文件中添加如下内容以允许访问外部图像。

module.exports = {
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'assets.tina.io',
port: '',
},
],
},
};

这里了解更多关于远程模式的信息。

最大文件大小

上传文件到 TinaCloud 时,允许的最大文件大小为 100 MiB。

这如何与分支协作?

基于仓库的媒体设计用于单一分支工作流。如果您的项目使用多个分支编辑工作流,需要注意一些已知的限制。

  • 图像一旦上传就不能更改,任何后续对资产的更改都不会反映。
  • 如果您只有一个启用媒体的分支,媒体存储将从该分支获取/上传图像。
  • 如果您有多个启用媒体的分支,则所有媒体将从/上传到存储库的默认分支。

如果您在非默认分支上配置 Tina(且 Tina 配置尚未合并到您的默认分支),您可能会在 TinaCloud 媒体设置中看到此消息:

要解决此问题,您可能需要在将 Tina 合并到默认分支后启用媒体。

上次编辑: March 26, 2025