从文件系统读取文件的Transmogrifier源
项目描述
transmogrify.filesystem
从文件系统读取文件的Transmogrifier源
此包提供了一个Transmogrifier数据源,用于从文件系统读取文件、图像和目录。输出格式旨在构建Plone文件、图像或文件夹内容。还可以通过提供单独的CSV文件,将任意元数据(如标题和描述)添加到内容项中。
安装
首先,将transmogrify.filesystem添加为您的产品依赖项,并在您的setup.py中包含其配置,同时在configure.zcml中包含其配置。
<include package="transmogrify.filesystem" />
或者,您可以通过在buildout.cfg中添加transmogrifier.filesystem到mr.migrator部分的egg列表中,使用transmogrify.filesystem与mr.migrator。有关更多信息,请参阅:http://pypi.python.org/pypi/mr.migrator/1.0b4
用法
您可以在管道中使用transmogrify.filesystem,如下所示
[transmogrifier] pipeline = data constructor schema savepoint [data] blueprint = transmogrify.filesystem directory = my.package:data/root ignored = re:.*\.svn.* [constructor] blueprint = collective.transmogrifier.sections.constructor [schema] blueprint = plone.app.transmogrifier.atschemaupdater [savepoint] blueprint = collective.transmogrifier.sections.savepoint every = 50
这将扫描Python包my.package内部的数据目录中的文件和目录,但会忽略任何.svn目录及其内容。源将产生适合传递给标准Transmogrifier内容构造函数的项目,并且从plone.app.transmogrifier更新了架构。
添加元数据
Transmogrifier将在Plone中重新创建目录结构和文件,但没有提供设置创建项目标题或描述的信息。
但是,您可以使用CSV文件添加文件的其他元数据。例如,假设您有一个如下所示的CSV文件
path,title,description /foo,Foo,A file /foo/bar,Bar,Another file
此文件中的标题表示附加数据的字段名称。其中一列必须有标题为path,并且应包含相对于Transmogrifier上下文(通常是Plone站点根目录)的文件路径,前面有一个正斜杠,如下所示。这些路径将与从数据目录加载的文件进行匹配。
使用portal_type列,您可以选择特定的内容类型。当内容类型为“新闻条目”时,它将检查文件是否为图像,并相应地处理。当内容类型为文档或事件时,文件的内容将写入“文本”字段。
后续列将原样传递,因此在这种情况下,title和description字段将被设置为CSV文件中给出的值。
要使用此文件,请使用metadata键,例如
[data] blueprint = transmogrify.filesystem directory = my.package:data/root metadata = my.package:data/metadata.csv ignored = re:.*\.svn.*
可用选项
可用选项如下
- directory(必需)
读取文件的目录。子目录应反映图像和上传文件最终路径。可以是绝对路径、相对于当前工作目录的路径或包引用(例如my.package:foo/bar)。
- metadata
包含元数据的CSV文件。请参阅上文。可以是绝对路径、相对于当前工作目录的路径或包引用(例如my.package:foo/bar)。
- require-metadata
如果设置为True,则仅包括具有匹配元数据的文件。目录总是包括,默认为False。
- delimiter
在元数据CSV文件中分隔数据的字符。
- strict
如果此设置为True,当transmogrify.filesystem发现元数据CSV中的数据行字段数与CSV文件第一行的字段数不匹配时,它将中断。
- folder-type
创建文件夹的门户类型(如果需要)。默认为‘Folder’。
- file-type
文件的门户类型。默认为‘File’。
- file-field
用于文件的字段名称(非图像内容)。默认为file,这是标准ATFile的名称。
- image-type
图像的门户类型。默认为‘Image’。
- image-field
用于图像内容的字段名称。默认为image,这是标准ATImage的名称。
- wrap-data
默认情况下,文件数据将被包装成一个OFS.File或OFS.Image对象。将此选项设置为False以获取原始数据,作为字符串。
- default-mime-type
对于无法猜测mimetype的内容,默认文件类型为application/octet-stream。
- ignored
要跳过的路径和/或正则表达式(以re:或regexp:开头)的列表。
输出
生成的字典将包含以下键
- _type
门户类型名称。将是folder-type(文件夹)、file-type(文件)或image-type(图像)之一。
- _path
新项的ZODB路径。这是基于读取文件所在的文件夹结构。
对于图像和文件,还包括两个额外的键
- _mimetype
从文件扩展名猜测得到的mimetype。如果无法做出适当的猜测,默认为application/octet-stream。
- 图像字段名称(使用file-field或image-field设置)
文件内容。
此外,如果指定,将包括与元数据CSV文件中匹配的行中的任何键。所有值都将为字符串。
变更日志
1.0b6(2012-08-03)
修复棕色袋子发布。[zupo]
1.0b5(2012-08-03)
在从文件系统读取后对子文件夹和文件名进行排序;这避免了在不同操作系统上子目录/文件的顺序不同。[zupo]
当门户类型是“新闻条目”时,它会检查文件是否是图像,并相应地处理。[sithmel]
1.0b4(2011-08-31)
添加自动包含条目标识,针对transmogrify以提供mr.migrator支持。这意味着人们可以在他们的mr.migrator部分(在buildout.cfg中)列出此包,mr.migrator将加载其ZCML。[aclark]
1.0b3(2011-03-01)
在元数据.csv中添加了指定项的门户类型的选项。[zupo]
1.0b2(2010-08-18)
添加了“strict”选项,这将使transmogrify.filesystem在找到元数据CSV中的数据行时,其字段数与CSV文件第一行的字段数不匹配时断开。[zupo]
添加了“delimiter”选项,您可以选择分隔元数据CSV文件的字符。[zupo]
通过忽略.svn和类似目录来修复test_empty_directory。[zupo]
撤销toutpt的更改,因为resolvePackageReferenceOrFile现在在transmogrifier的发布版本中可用。[zupo]
更新api resolvePackageReferenceOrFile -> resolvePackageReference [toutpt]
1.0b1(2009-12-30)
初始发布 [optilude]
项目详情
transmogrify.filesystem-1.0b6.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | edbe9e9b8e90de46dfc40f37116a1e6e061a4a37f6928fd78c86138376a7a429 |
|
MD5 | 26277b09d91d8ea5228667dbcf12202c |
|
BLAKE2b-256 | 1955ba3ba735bc18294b423214f162f7d7d4b6e6bf985fd7229e0ad47c4e13b5 |