【问题标题】:Laravel S3 Storage put returns boolean instead of pathLaravel S3 Storage put 返回布尔值而不是路径
【发布时间】:2021-12-12 22:24:39
【问题描述】:

我正在使用 DigitalOcean Spaces(与 S3 兼容)来存储 Laravel 的应用文件。

现在我正在尝试使用以下代码制作一个插入文本的 .txt 文件:

$file = Storage::disk('digitalocean')->put('generated-file/'.$title.'.txt', $content); 
return $file;

但是我得到一个布尔值而不是文件的路径,所以当我尝试使用这种方法获取完整的 url 时:

Storage::disk('digitalocean')->url($file);

我得到一个错误的 URL。 我怎样才能实现我想做的事情? (制作一个新的txt文件,不要上传现有的,并在对象存储上获取他的公共网址)。

【问题讨论】:

  • ->put() 只返回truefalse,如果你想使用url(),你需要返回类似'generated-file/'.$title.'.txt' 而不是$file

标签: php laravel amazon-s3 digital-ocean-spaces


【解决方案1】:

put(...)(或一般的 CRUD 操作)大多数时候会以布尔值的形式返回操作结果 - true 表示成功,false 表示失败。

在这种情况下,$file 将包含一个布尔值。

返回文件路径,然后传递给url(...)获取URL。

$filePath = 'generated-file/'.$title.'.txt';
$result = Storage::disk('digitalocean')->put($filePath, $content); 
return $filePath;
Storage::disk('digitalocean')->url($filePath);

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 2017-04-22
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多