これは非常に可能であり、パッケージcfs:standard-packages
を使用して安全な方法で行われます。 およびcfs:filesystem
。率直に言って、私はあなたの質問について深く掘り下げませんでした。
綺麗なパッケージです。上記の
ファイルシステムコレクションを作成するためのコード
var imageStore = new FS.Store.FileSystem("YOUR_COLLECTION_NAME");
YOUR_COLLECTION_NAME = new FS.Collection("YOUR_COLLECTION_NAME", {
stores: [imageStore]
});
要するに。ファイルは兄弟でbundle/
に保存されます cfs/files/YOUR_COLLECTION_NAME
の場所 。ファイルに関する情報は、コレクションcfs.YOUR_COLLECTION_NAME.filerecord
に保存されます。 一時的な場所は、コレクションcfs._tempstore.chunks
で内部目的に使用されます 以下のように。
上記のパッケージを使用してファイルを保存する場合。メタデータはcfs.YOUR_COLLECTION_NAME.filerecord
内に保存されます 以下のように
{
"_id" : "TBmxbsL2cMCM2tEc7",
"original" : {
"name" : "photo.jpg",
"updatedAt" : ISODate("2017-07-06T12:54:50.115Z"),
"size" : 2261,
"type" : "image/jpeg"
},
"uploadedAt" : ISODate("2017-07-08T06:58:32.433Z"),
"copies" : {
"YOUR_COLLECTION_NAME" : {
"name" : "photo.jpg",
"type" : "image/jpeg",
"size" : 2261,
"key" : "YOUR_COLLECTION_NAME-TBmxbsL2cMCM2tEc7-photo.jpg",
"updatedAt" : ISODate("2017-07-08T06:58:32.475Z"),
"createdAt" : ISODate("2017-07-08T06:58:32.475Z")
}
}
}
クライアント側では、
を使用してドキュメントファイルへのリンクを取得できます
YOUR_COLLECTION_NAME.find({"_id" : "TBmxbsL2cMCM2tEc7"}).url();
このURLは、サーバーへの直接の場所ではなく、ファイルへのトークンベースの安全なリンクです。通常のコレクションと同じように、ダウンロードやコンテンツの追加の許可/拒否設定を設定できます。これがお役に立てば幸いです!