Laravel Vapor 无法下载 DOCX 或 XLSX 文件类型

Laravel Vapor Unable to Download DOCX or XLSX file types

我正在使用 Laravel vapor 来托管我的应用程序,但我在从 AWS S3 下载某些文件类型时遇到问题。我想知道这是否是请求 header 不允许这些文件类型的 CloundFront 问题。由于我可以很好地下载 PNG、JPG、PDF 文件,我只是遇到了 DOCX 和 XLSX 等文件的问题。在我的 API 中,我只是使用 Storage facade 来流式下载。

    /**
     * Download file from storage
     * @param Document $document
     * @return StreamedResponse
     */
    public function download(Document $document): StreamedResponse
    {
        return Storage::disk('s3')->download($document->path);
    }

这是请求header,我认为已设置

accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

这是抛出的错误

能够通过对 S3 存储中的项目进行临时 link 来解决,并重定向以进行初始化下载。

    public function download(Document $document): RedirectResponse
    {
        $url = Storage::temporaryUrl(
            $document->path
            now()->addMinutes(30)
        );

        return Redirect::away($url);
    }

来自 Vapor 文档的参考资料:https://docs.vapor.build/1.0/projects/development.html#binary-responses