【问题标题】:Differences between apostrophe-attachments and apostrophe-files?撇号附件和撇号文件之间的区别?
【发布时间】:2017-03-31 08:08:53
【问题描述】:

附件和文件模块之间的主要区别是什么,每个模块都有特定的用例吗?权限可以同时应用于两者吗?我是这个平台的新手,所以我试着了解撇号如何完成事情的方式和原因。

【问题讨论】:

    标签: apostrophe-cms


    【解决方案1】:

    我是朋克大道 Apostrophe 的建筑师。

    确切地说,这些模块不是替代品。其实apostrophe-filesapostrophe-images都是建立在apostrophe-attachments之上的。

    什么是apostrophe-file?这是一个“片段”——一个带有标题、一些元数据的撇号文档,在本例中是一个 attachment 字段。由于它是一个片段,就像任何博客文章或活动一样,您可以通过管理栏管理您的所有文件,您可以使用apostrophe-files-widgets 在您的站点周围显示下载链接,等等。

    那么attachment 是什么?它是一种模式字段——一种类型的字段,您可以将其包含在 Apostrophe 中任何类型文档的模式中,例如片段或页面。

    大多数架构字段类型都非常简单。例如,string 字段类型由字符串组成。 boolean 字段类型为真或假,依此类推。

    但附件有点棘手。在理想的世界中……从数据库设计的角度来看……文件的实际内容将直接存在于您的文档中; doc.headshot 可能是实际的 JPEG 数据(或者可能是那个,加上一些元数据)。

    但我们不能这样做,因为文件非常大,即使它们适合 MongoDB 文档(它们并不总是),它也会非常非常低效,尤其是当我们对它们不感兴趣时现在。

    因此,如果您使用 findOne 在 mongo shell 中显示它,这是典型的 apostrophe-file 在 MongoDB 中的样子。为了简单起见,我将其缩减了一点。注意attachment 属性:

    {
        "_id" : "xyz",
        "type" : "apostrophe-file",
        "title" : "Field Trip Permission Slip",
        "slug" : "file-field-trip-permission-slip",
        "attachment" : {
            "type" : "attachment",
            "_id" : "qqq",
            "name" : "permission-form",
            "extension" : "pdf"
        },
    }
    

    attachment 字段有自己的_id。在_idname 属性和extension 属性之间,apos.attachments.url() 方法可以组合一个 URL 来下载它。

    那么这给我们带来了什么?灵活性。想要在您的网站上重复使用单个 PDF 库吗?使用apostrophe-files,并使用apostrophe-files-widgets 在站点周围显示下载链接。

    想要将resume 属性附加到特定人员的profile 部分并将其 保留在共享库之外?请在架构中为您的作品类型使用 attachment 字段:

    // in lib/modules/people
    module.exports = {
      extend: 'apostrophe-pieces',
      addFields: [
        {
          type: 'attachment',
          name: 'resume'
        }
      ]
    }
    

    我们本可以使用一个小部件来选择一个文件,但我们不想让成千上万的简历使共享文件库变得混乱。所以我们只是直接在简历中添加了一个attachment 属性。

    那么,在您的模板中,您如何获取属于片段一部分的附件的 URL?像这样:

    apos.attachments.url(data.piece.resume)

    有关您可以使用apostrophe-filesapostrophe-imagesapostrophe-attachments 做什么的更多信息,请参阅文档。教程中有很多例子,尤其是apostrophe-images-widgets。希望这个答案能让您了解如何以及何时直接使用 attachment 字段。

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 2013-07-21
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多