为什么10月cms不通过使用amazon-s3上传图片将附件保存在db上?

为什么10月cms不通过使用amazon-s3上传图片将附件保存在db上?,amazon-s3,octobercms,octobercms-plugins,Amazon S3,Octobercms,Octobercms Plugins,我对AWS s3和10月cms有问题。 如果我从媒体页面s3上传图像或文件,效果很好,但如果我从对象系统或小部件上传图像,则为附件id,系统文件表上的附件类型为空。 因此,我无法按模型获取所有图像 有人知道这是一个10月份的cms错误还是我还有一些东西要配置 filesystem.php配置: cms.php配置: sistem_文件数据库表: 模型示例: 实际上,它不可能作为小部件/文件上传器等建立文件的关系,并保存在数据库中的关系 其中,正如在介质中一样,它只是基于配置的本地磁盘或远程磁盘

我对AWS s3和10月cms有问题。 如果我从媒体页面s3上传图像或文件,效果很好,但如果我从对象系统或小部件上传图像,则为附件id,系统文件表上的附件类型为空。 因此,我无法按模型获取所有图像

有人知道这是一个10月份的cms错误还是我还有一些东西要配置

filesystem.php配置:

cms.php配置:

sistem_文件数据库表:

模型示例:


实际上,它不可能作为小部件/文件上传器等建立文件的关系,并保存在数据库中的关系

其中,正如在介质中一样,它只是基于配置的本地磁盘或远程磁盘的普通路径

所以,如果您想添加存储在s3上的图像,您可以添加repeater字段,该字段中包含媒体小部件,用于选择文件和上载文件。通过这种方式,您可以选择或添加多个文件

从代码来看,数据库文件系统中的远程磁盘不可能实现

媒体使用远程磁盘

文件上载小部件/模型仅使用本地磁盘


如果您有任何疑问,请发表评论。

您是对的。非常感谢。这意味着一个解决方案是自己创建一个S3文件上传类或函数。我想知道您是否可以创建类似System\Models\File的东西并在全球范围内使用它。我认为不使用该表是不切实际的,每个表中的每个图片都有自己的字段来创建,并为其编写额外的函数。是的,您可以创建自己的表并在新表中扩展System\Models\File。您需要存储s3项的路径,而不是本地项,这样就可以了
'default' => 's3',
'cloud' => 's3',
'disks' => [
    'local' => [
        'driver' => 'local',
        'root'   => storage_path('app'),
    ],
    's3' => [
        'driver' => 's3',
        'key'    => env('AWS3_KEY'),
        'secret' => env('AWS3_SECRET'),
        'region' => env('AWS3_REGION'),
        'bucket' => env('AWS3_BUCKET'),
    ],
'storage' => [
    'uploads' => [
        'disk'   => 's3',
        'folder' => 'chemie/uploaded-files',
        'path'   => 'https://amazon/s3/bucket-name/chemie',
    ],
    'media' => [
        'disk'   => 's3',
        'folder' => 'chemie',
        'path'   => 'https://amazon/s3/bucket-name/chemie',
    ],
],
/**
 * @var array
 */
public $attachMany = [
    'gallery_images' => [
        'System\Models\File',
    ],
];