0
我想将我的文件保存到S3,每个项目都有自己的路径,例如base/item._id/filename
。如何做到这一点?KeystoneJsS:每个项目的S3文件类型路径
看起来文件名是自动生成的,该选项不起作用。
我想将我的文件保存到S3,每个项目都有自己的路径,例如base/item._id/filename
。如何做到这一点?KeystoneJsS:每个项目的S3文件类型路径
看起来文件名是自动生成的,该选项不起作用。
Keystone的Types.S3File
类型有一个filename
选项,您可以将其设置为自定义函数以确定您自己的文件名。 Documentation Link
{
type: Types.S3File,
filename: function(item, filename) {
// prefix file name with object id
return item._id + '-' + filename;
}
}
item
具有当前项目的所有属性,所以你可以如果值存在将其设置为item.name
。
不适用于4.0.0-beta 5 – mikeso
Keystone转移到使用Keystone 4的集中式“Types.File”类型。您需要使用它们的[Amazon S3存储适配器](https://github.com/ keystonejs/keystone-storage-adapter-s3)创建模式时。不过,它看起来好像'generateFilename'函数没有收到对Keystone 4中要更新的项目的引用。 [更多阅读](https://github.com/keystonejs/keystone/wiki/File-Fields-Upgrade-Guide) –
是的,我使用s3 adpter,它工作。但我想为不同的项目有不同的子目录。怎么做? s3:{ path:'uploads', headers:{ 'x-amz-acl':'public-read', }, },这会上传到/ upload,我想要/上传/ item_id/xxx – mikeso