【发布时间】:2020-04-06 15:59:55
【问题描述】:
我们在 Laravel 应用程序中使用 Nova 包作为我们的管理后端。所有文件和图像都存储在 AWS S3 存储桶中。
尝试从 Nova 下载文件后,下载以名称 download.json 和服务器错误消息开始。
文件在 S3 中正确存储,我可以手动检查,S3 中它们的路径也正确存储在数据库中。
这是我们用于在 Nova 中创建下载字段的代码
->download(function(){
return Storage::disk('s3')->download($this->name);
})
->onlyOnDetail()
$this->name 保存 s3 存储桶内的路径。
config/filesystems.php 也被定义:
'disks' => [
...
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
Nova 文档在这个问题上没有帮助我。任何输入都会非常有帮助。
更新: 问题不在代码中,而在配置中。 在不更改配置的情况下,以下代码确实有所帮助:
Text::make('File/Document', function() {
$linkToFile = Storage::disk('s3')->temporaryUrl($this->name, now()->addMinutes(1));
return '<a href="' . $linkToFile . '" target="_blank">Download file</a>';
})
->asHtml(),
【问题讨论】:
标签: laravel amazon-s3 laravel-nova