标签: flysystem

尝试使用 Superbalist/flysystem-google-cloud-storage 上传到 Google 云存储

更新:使用此 PR 中的代码修复了它,我已要求协助合并 PR,但目前我的问题已通过叉子进行排序。

尝试通过以下包上传到Google云存储:

https://github.com/Superbalist/flysystem-google-cloud-storage#usage

我的集成可以很好地使用细粒度访问控制,但我需要使用统一访问,并且任何时候我将其设置为统一而不是细粒度,我都无法再上传到存储桶,并收到以下错误:

{
  "error": {
    "code": 400,
    "message": "Cannot insert legacy ACL for an object when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access.",
    "errors": [
      {
        "message": "Cannot insert legacy ACL for an object when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access.",
        "domain": "global",
        "reason": "invalid"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

为了让这个工作正常进行,我可能会缺少什么想法?

php storage google-cloud-storage flysystem

6
推荐指数
1
解决办法
5182
查看次数

删除时找不到Flysystem文件

我正在尝试用Laravel 5删除照片.

Storage::delete( asset('/uploads/slides/abcd.jpg'));
Run Code Online (Sandbox Code Playgroud)

它返回此错误:

FileNotFoundException in Filesystem.php line 428:
File not found at path: http:/localhost:8000/uploads/slides/abcd.jpg
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器中复制并粘贴路径,它会打开文件,因此该文件确实存在.怎么了?

php laravel flysystem

5
推荐指数
1
解决办法
1740
查看次数

如何使用谷歌云存储作为Laravel 5文件系统?

我正在开发一个允许我的用户上传文件的应用程序,并且我已经使用文件系统功能使其与"本地"磁盘一起工作,但现在我想迁移并使用Google Google云端存储.

找到一些有用的信息非常困难.在文档中有一个与dropbox一起工作的"示例",但它并不完整.它没有显示如何配置驱动程序和磁盘,因此对我来说还不够清楚.

我想知道该怎么做,因为我现在不知道.

我刚刚使用了这个教程http://www.codetutorial.io/laravel-5-file-upload-storage-download/,它正在为本地工作,所以我真的需要迁移到谷歌云存储,只有那个.我正在使用openshift,我觉得很舒服.

你能不能请我知道我应该配置哪些文件系统可以根据需要使用?

谢谢

php google-cloud-storage laravel-5 flysystem laravel-filesystem

5
推荐指数
1
解决办法
8817
查看次数

Laravel Flysystem sftp 权限被拒绝

我尝试将Laravel Flysystem与 PHP League (league/flysystem-sftp) 的 sftp 适配器一起使用。使用 Laravel 5.4 和 Flysystem 3.7 版本。

当我尝试将文件放在服务器上时,我收到消息:

无法连接到 someadress.com:22。错误 13. 权限被拒绝

这是代码:

$box = new Filesystem(new SftpAdapter(Config::get('flysystem.connections.sftp')));
$box->put('test.txt', 'bar');
Run Code Online (Sandbox Code Playgroud)

以及配置中的连接详细信息:

'sftp' => [
     'driver'     => 'sftp',
     'host'       => 'someadress.com',
     'port'       => 22,
     'username'   => 'someuser',
     'password'   => 'ArndomPa55',
     'privateKey' => '/home/user/.ssh/id_rsa',
     'root'       => '/var/www/html/site/box/',
     'timeout'    => 20,
 ],
Run Code Online (Sandbox Code Playgroud)

当我从运行该程序的服务器建立 SSH 连接时,它连接正常,没有密码提示,因此它使用私钥。所以不确定为什么这不起作用。

我检查了接收服务器上的安全日志,里面什么也没有。

php ssh laravel-5 flysystem

5
推荐指数
1
解决办法
6924
查看次数

调用 Flysystem,为什么会出现 PHP Fatal error: Class 'League\Flysystem\Adapter\Local' not found?

我尝试运行 Flysystem 的适配器基本示例代码Local,但出现Class 'League\Flysystem\Adapter\Local' not found错误。这是我的过程:

版本检查:

php -v
PHP 5.5.9-1ubuntu4.23 (cli) (built: Feb  8 2018 21:59:47)
Run Code Online (Sandbox Code Playgroud)

安装飞行系统:

composer require league/flysystem
Run Code Online (Sandbox Code Playgroud)

输出显示我是最新的(这是我第二次运行它):

Using version ^1.0 for league/flysystem
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
Run Code Online (Sandbox Code Playgroud)

现在网络根目录中有一个vendor文件夹。其中./web/vendor/league/flysystem/src/Adapter$有这些文件:

AbstractAdapter.php
AbstractFtpAdapter.php
CanOverwriteFiles.php
Ftpd.php
Ftp.php
Local.php
NullAdapter.php
Polyfill/
SynologyFtp.php
Run Code Online (Sandbox Code Playgroud)

...只是表明它似乎安装正确(?)我在我的 Web 根目录中创建一个测试文件和一个测试目录:

  1. 飞本地.php
  2. 我的文件/

fly-local.php我将他们的文档中的文本粘贴到其中( https://flysystem.thephpleague.com/docs/adapter/local/):

<?php

use League\Flysystem\Filesystem;
use …
Run Code Online (Sandbox Code Playgroud)

php codeigniter-2 flysystem

5
推荐指数
1
解决办法
1万
查看次数

Laravel 文件系统 sftp 缓存适配器

我在这个问题上挣扎了一段时间。我正在使用 sftp 适配器连接到另一台我经常读/写文件的服务器。

对于缩略图创建,我使用 Laravel Horizo​​n 的后台作业从远程 sftp 服务器检索 pdf 内容,然后生成 jpg 并放置在本地文件系统中。

对于第一次设置,我需要制作大约 150k 的缩略图。当我在 Horizo​​n 中使用大量进程时,远程服务器无法处理这么多的连接。

我目前必须限制最多 2 个进程(10 秒~ * 150k~),这不是最佳选择。

我想缓存连接,因为我知道这是可能的,并且可能解决我的问题,但无法让它工作:(

我能找到的唯一参考/教程/示例/文档是

https://medium.com/@poweredlocal/caching-s3-metadata-requests-in-laravel-bb2b651f18f3 https://flysystem.thephpleague.com/docs/advanced/caching/

当我使用示例中的代码时,如下所示:

Storage::extend('sftp-cached', function ($app, $config) {
    $adapter = $app['filesystem']->createSftpAdapter($config);
    $store = new Memory();

    return new Filesystem(new CachedAdapter($adapter->getDriver()->getAdapter(), $store));
});
Run Code Online (Sandbox Code Playgroud)

我收到错误:不支持驱动程序 []。

这里有人可以在这方面进一步帮助我吗?

php sftp laravel flysystem

5
推荐指数
1
解决办法
2087
查看次数

下载存储文件时无法检索文件的 file_size - Laravel

只是一个简单的问题。

尝试下载存储文件,但无法从存储文件夹下载文件。

在谷歌上搜索过。找到了两种下载存储文件的方法。两者都尝试过但没有成功。

return response()->download(storage_path("app\public\uploads\1662531990_Dropshipping.docx"));
Run Code Online (Sandbox Code Playgroud)
return Storage::disk('public')->download("app\public\uploads\1662531990_Dropshipping.docx", "1662531990_Dropshipping");
Run Code Online (Sandbox Code Playgroud)

是的,上面给出的文件存在于给定路径中。下面是该目录和错误屏幕的屏幕截图。

我认为,它与以下相关的软件包有关flysystem,因为composer show

league/config                      v1.1.1  Define configuration arrays with strict schemas an...   
league/flysystem                   3.2.1   File storage abstraction for PHP
league/flysystem-aws-s3-v3         3.0.0   AWS S3 filesystem adapter for Flysystem.
league/mime-type-detection         1.11.0  Mime-type detection for Flysystem
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

php storage path laravel flysystem

5
推荐指数
1
解决办法
2850
查看次数

PHP 7.0.5:使用未定义的常量FTP_BINARY - 假设为"FTP_BINARY"

在Windows IIS上升级到PHP 7.0.5(最后因为sqlsrv PDO驱动程序可用).我正在使用Laravel 5.1,当我尝试连接到FTP驱动器时,我从https://github.com/thephpleague/flysystem/blob/master/src/Adapter/Ftp.php#L19收到以下错误.

Use of undefined constant FTP_BINARY - assumed 'FTP_BINARY'

这是转移的PHP常量,所以不应该有问题,并且文档中没有任何内容可以说它已被弃用或任何东西.FTP_ASCII是一样的.我唯一做的就是改变PHP版本+ SQL驱动程序.

参考:http://php.net/manual/en/function.ftp-put.php

windows iis flysystem php-7 laravel-5.1

4
推荐指数
1
解决办法
4583
查看次数

配置 LiipImagineBundle Symfony 以与 Flysystem 配合使用

我一直在尝试配置 CDN (S3) 以与 LiipImagineBundle 配合使用,但当它请求不存在的服务时,我总是陷入困境。

这是什么意思?

filesystem_service 属性的值必须是返回 League\Flysystem\Filesystem 实例的服务。

从这里:http ://symfony.com/doc/current/bundles/LiipImagineBundle/cache-resolver/flysystem.html

在这里:http ://symfony.com/doc/current/bundles/LiipImagineBundle/data-loader/flysystem.html

我尝试创建一个返回 League\Flysystem\Filesystem 实例的服务,如下所示:

league.flysystem.s3adaptor:
    class: League\Flysystem\AwsS3v3\AwsS3Adapter
    arguments: ['@acme.s3_client', '%amazon.s3.bucket%', 's3_fs', '@?']

league.flysystem.filesystem:
    class: League\Flysystem\Filesystem
    arguments: ['@league.flysystem.s3adaptor', '@?']
    calls:
        - [addPlugin, ['@oneup_flysystem.plugin.list_with']]
Run Code Online (Sandbox Code Playgroud)

我不确定这是否正确,但我无法让它工作。

任何帮助或建议将不胜感激。

amazon-s3 symfony liipimaginebundle flysystem

3
推荐指数
1
解决办法
737
查看次数

Laravel 无法连接到 AWS S3

我已经设置了一个 S3 存储桶并创建了一个具有完全 S3 访问权限的 IAM 用户,并运行了composer require league/flysystem-aws-s3-v3.

我还在 .env 中配置了以下内容:

AWS_ACCESS_KEY_ID=XXXX
AWS_SECRET_ACCESS_KEY=YYYY
AWS_DEFAULT_REGION=us-west-3
AWS_BUCKET=my-bucket
AWS_USE_PATH_STYLE_ENDPOINT=false
FILESYSTEM_DRIVER=s3
Run Code Online (Sandbox Code Playgroud)

问题是我根本无法从我的控制器与 S3 交互。我尝试过将文件发送到 S3:

$path = $request->Image->store('images', 's3');
Run Code Online (Sandbox Code Playgroud)

我还手动将图像上传到 S3,然后尝试检查是否可以找到它:

if (Storage::disk('s3')->exists('photo.jpg')) {
dd("file found");
} else{
dd("file not found");
}
Run Code Online (Sandbox Code Playgroud)

这会导致此错误:Unable to check existence for: photo.jpg

这让我认为问题出在flysystem-aws-s3-v3.

有没有办法缩小问题所在的范围?顺便说一句,我正在使用Laravel 9Flysystem-aws-s3-v3 3.0(如果有帮助的话)。

php amazon-s3 amazon-web-services laravel flysystem

3
推荐指数
1
解决办法
7189
查看次数