CKAN 将推送到 datastore/filestore 的文件存储在哪里?

Where does CKAN store the files pushed to datastore/filestore?

我想知道 CKAN 在哪里存储上传到 datastore/filestore 的文件。

我刚搭建好环境,在/var/lib/ckan/default/storage上搜索了一下,结果只有图标。我在工具中上传的 CSV 文件不存在。

我在 /usr/lib/ckan 中搜索过,但文件不存在。我在其他任何地方都找不到 CSV 文件。

这些文件存储在哪里?

文件存储

默认情况下,资源文件保存在文件系统中。

在CKAN .ini配置文件中,属性 ckan.storage_path指向存放文件的基本文件夹,例如:

ckan.storage_path = /var/lib/ckan

该文件夹包含另外两个文件夹:

  • storage 包含 上传的组/组织图片
  • resources 将 CSV(和 PDF、XLS 等)资源文件 存储在两级文件夹下

为了找到特定的资源文件,查看它的GUID:

  • GUID 的前三个字符是一级文件夹的名称
  • GUID后面三个字符是二级文件夹的名称
  • 剩余的 GUID(包括 - 个字符)是 文件名

例如,如果资源 GUID 是 3F2504E0-4F89-11D3-9A0C-0305E82C3301,它在文件系统上存储为 /var/lib/ckan/resources/3F2/504/E0-4F89-11D3-9A0C-0305E82C3301

数据存储

如果您配置了 DataStore,CSV 文件存储在数据库中以便于查询。

安装 DataStore 涉及在 CKAN .ini 配置文件中添加如下内容:

ckan.datastore.write_url = postgresql://ckan_default:pass@localhost/datastore_default
ckan.datastore.read_url = postgresql://datastore_default:pass@localhost/datastore_default

其中说明数据库用户、服务器和数据库名称。

DataStore 中每个资源的数据都包含在一个名为资源 GUID 的数据库中table。