php - Laravel s3 文件系统驱动程序不使用 AWS_URL 变量

标签 php laravel amazon-s3 minio

我正在尝试将文件上传到与 s3 兼容的对象存储(我使用的是 Minio),但 laravel 中的 aws 客户端不使用我在 .env AWS_URL 变量中提供的 url。

AWS_URL=http://192.168.1.22:9000

我正在使用 artisan 内置服务器,并且已经尝试清除配置缓存。

我目前的代码是:

$request->videoFile->store('videoFiles', 's3');

我收到一个错误,表明 laravel 正在尝试连接到错误的 url。
Error executing "PutObject" on "https://myawesomebucket.s3.amazonaws.com/videoFiles/bs20uHPxkprbG6fC6e1B6pHtBiQxwgTmrrDdGP2e.mp4"; 

最佳答案

s3 中的默认 filesystems.php 条目如下所示:

    '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'),
    ],

尽管这似乎在某一时刻适用于 minio,但现在似乎完全忽略了 url 属性。

这是一个适用于 minio 和 S3 的修改后的配置:
    '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'),

        // the below 'endpoint' url is actually used:
        'endpoint' => env('AWS_URL'),
        // prevent bucket name from being added to the hostname:
        'bucket_endpoint' => false,
        // use older urls:
        'use_path_style_endpoint' => true,
    ],

我引用了这些指南来查找此信息:
  • https://laravel.com/docs/5.8/homestead(在“配置 Minio”标题下)
  • https://github.com/minio/cookbook/blob/master/docs/how-to-use-minio-as-laravel-file-storage.md
  • 关于php - Laravel s3 文件系统驱动程序不使用 AWS_URL 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55994600/

    相关文章:

    PHP cURL,POST JSON

    php - 我可以让用户提交表格并收到 PDF 副本吗?

    php - fatal error : require_once(): Failed opening required 'C:\core/vendor/autoload.php' (include_path ='C:\xampp\php\PEAR' ) in C:\Users\zu

    java - JetS3t 与 AWS Java SDK

    php - 转置返回的 JSON 对象(PHP、mySQL)

    php - JQuery 和提交按钮

    php - Laravel 5 View语法错误

    大型网站的 Laravel 本地化

    amazon-s3 - 在 cloud foundry 中自动备份 maria db 和 s3

    python - 向所有 boto 请求添加 "default" header ?