Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:使用Linode';s存储对象作为AWS S3的替代品_Php_Laravel_Amazon Web Services_Amazon S3_Linode - Fatal编程技术网

Php Laravel:使用Linode';s存储对象作为AWS S3的替代品

Php Laravel:使用Linode';s存储对象作为AWS S3的替代品,php,laravel,amazon-web-services,amazon-s3,linode,Php,Laravel,Amazon Web Services,Amazon S3,Linode,Linode的对象存储被标记为与S3兼容。知道了这一点,我想我可以在filesystems.php中简单地使用Linode的凭证,并使用->磁盘('s3')来上传和下载文件,但显然不是这样 我已经按照中的建议安装了所有必需的S3 PHP包 My.env具有: AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar AWS_DEFAULT_REGION=DE AWS_BUCKET=my-linode-storage-object.eu-central-1.l

Linode的对象存储被标记为与S3兼容。知道了这一点,我想我可以在
filesystems.php
中简单地使用Linode的凭证,并使用
->磁盘('s3')
来上传和下载文件,但显然不是这样

我已经按照中的建议安装了所有必需的S3 PHP包

My
.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
在日志中,我发现异常
无法解析主机
。它试图将AWS端点与我在上面提供的内容连接起来,以便不费吹灰之力就无法工作。我应该安装完全不同的包来处理Linode的存储对象连接吗


关于如何在Laravel应用程序中使用Linode的存储对象,我在网上看不到太多教程。任何链接或提示都将不胜感激。

来自laravel文档,只需安装一个所需的Composer软件包即可

$ composer require league/flysystem-aws-s3-v3
不要安装league/flysystem缓存适配器,因为这需要更多配置

接下来,在配置文件系统文件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_端点下还包括http或https


现在您已经设置好了所有内容,现在可以在您的laravel代码->磁盘('linode')上使用此磁盘。

不能对linode进行特定注释,但使用当前方法,您的查询将使用AWS的S3端点。可能必须覆盖它才能使用Linode端点?在boto3中,您可以使用覆盖boto3使用的默认点。PHP应该有类似的东西?我没听说过很多关于linode的东西,但我可以给你一些建议。我认为你不应该破解你的密码。除主机外,您的环境将类似于使用S3。您的代码也将类似于使用S3。此外,您不应该将凭据放在配置文件中。想象一下,您将向公众开放您的代码库。当做