0
私のファイルをS3に保存したい場合は、すべてのアイテムにbase/item._id/filename
のような独自のパスがあります。これをどのように達成するのですか?KeystoneJsS:すべてのアイテムのS3ファイルタイプのパス
ファイル名が自動生成されていて、オプションが機能しないようです。
私のファイルをS3に保存したい場合は、すべてのアイテムにbase/item._id/filename
のような独自のパスがあります。これをどのように達成するのですか?KeystoneJsS:すべてのアイテムのS3ファイルタイプのパス
ファイル名が自動生成されていて、オプションが機能しないようです。
キーストーンの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
キーストーンはキーストーン4で集中型の「Types.File」タイプに移行しました。[Amazon S3ストレージアダプタ](https://github.com/)を使用する必要があります。 keystonejs/keystone-storage-adapter-s3)を使用してスキーマを作成します。しかし、 'generateFilename'関数はキーストーン4で更新される項目への参照を受け取らないように見えます。 [もっと読む](https://github.com/keystonejs/keystone/wiki/File-Fields-Upgrade-Guide) –
はい、私はs3 adpterを使用していて、動作しています。しかし、私は別の項目のために異なるサブディレクトリを持っていると思います。どうやってするの? s3:{ パス: 'uploads'、 ヘッダー:{ 'x-amz-acl': 'public-read'、 }、 }これは/ uploadにアップロードされ、/ upload/item_id/xxxが必要です – mikeso