Linode 的 Object Storage 标记为 与 S3 兼容 .知道这一点后,我认为我可以在 filesystems.php
中简单地使用 Linode 的凭据。并使用 ->disk('s3')
上传和下载文件,但显然情况并非如此。
我已经按照 Laravel's docs 中的建议安装了所有必需的 S3 PHP 包。 .
我的 .env
已:
AWS_ACCESS_KEY_ID=foo
AWS_SECRET_ACCESS_KEY=bar
AWS_DEFAULT_REGION=DE
AWS_BUCKET=my-linode-storage-object.eu-central-1.linodeobjects.com
在日志中,我遇到了
Could not resolve host
的异常.它尝试将 AWS 端点与我上面提供的内容连接起来,因此很容易就行不通了。我应该安装完全不同的包来处理 Linode 的存储对象连接吗?我在网上没有看到很多关于如何在 Laravel 应用程序中使用 Linode 的存储对象的教程。任何链接或提示将不胜感激。
最佳答案
从 laravel 文档中只需安装所需的 Composer 包之一
$ composer require league/flysystem-aws-s3-v3
暂时不要安装 League/flysystem-cached-adapter,因为这需要更多配置。接下来,在配置文件系统文件config/filesystems.php下添加一个使用s3驱动的新磁盘
'linode' => [
'driver' => 's3',
'key' => env('LINODE_KEY'),
'secret' => env('LINODE_SECRET'),
'endpoint' => env('LINODE_ENDPOINT'),
'region' => env('LINODE_REGION'),
'bucket' => env('LINODE_BUCKET'),
],
将新的环境变量添加到项目的 .env 文件中:LINODE_KEY="KEYUNDERDOUBLEQUOTES"
LINODE_SECRET="SECRETUNDERDOUBLEQUOTES"
LINODE_ENDPOINT="https://eu-central-1.linodeobjects.com"
LINODE_REGION="eu-central-1"
LINODE_BUCKET="bucket-name"
我通常在 ""下包含变量以确保它与符号一起使用。还包括在 LINODE_ENDPOINT 下的 http 或 https。现在你已经设置好了一切,你现在可以在你的 Laravel 代码中使用这个磁盘 ->disk('linode')
关于php - Laravel:使用 Linode 的存储对象作为 AWS S3 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61407039/