跳转到主要内容

从文件系统读取文件的Transmogrifier源

项目描述

transmogrify.filesystem

从文件系统读取文件的Transmogrifier源

此包提供了一个Transmogrifier数据源,用于从文件系统读取文件、图像和目录。输出格式旨在构建Plone文件图像文件夹内容。还可以通过提供单独的CSV文件,将任意元数据(如标题和描述)添加到内容项中。

安装

首先,将transmogrify.filesystem添加为您的产品依赖项,并在您的setup.py中包含其配置,同时在configure.zcml中包含其配置。

<include package="transmogrify.filesystem" />

或者,您可以通过在buildout.cfg中添加transmogrifier.filesystemmr.migrator部分的egg列表中,使用transmogrify.filesystemmr.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列,您可以选择特定的内容类型。当内容类型为“新闻条目”时,它将检查文件是否为图像,并相应地处理。当内容类型为文档或事件时,文件的内容将写入“文本”字段。

后续列将原样传递,因此在这种情况下,titledescription字段将被设置为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-fieldimage-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 (33.2 kB 查看哈希值)

上传时间 来源

由以下提供支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页