首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Flysystem中包含/要求文件

从Flysystem中包含/要求文件
EN

Stack Overflow用户
提问于 2017-06-08 13:14:28
回答 2查看 397关注 0票数 0

我的PHP应用程序动态生成一些脚本文件,然后使用requireinclude运行这些脚本文件。

我现在正在将我的生产服务器迁移到,以实现扩展和负载平衡。这意味着生成的脚本文件不应该再存储在本地文件系统中,而应该存储在S3桶中。

因此,我希望使用Flysystem,这样我就不必考虑文件是存储在本地(开发)还是存储在S3桶(生产)中。

但是如何从Flysystem中requireinclude文件呢?我必须得到文件内容然后eval吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-01 06:31:25

不可能直接从Flysystem includerequire文件。解决方法是获取文件的内容并对其进行eval。请注意,您必须处理<?php文件中的任何前导?>标记和尾随eval标记。

票数 0
EN

Stack Overflow用户

发布于 2017-06-08 13:21:40

本地存储:

代码语言:javascript
复制
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;

$adapter = new Local(__DIR__.'/path/to/root');
$localFilesystem = new Filesystem($adapter);

S3存储:

代码语言:javascript
复制
use Aws\S3\S3Client;
use League\Flysystem\AwsS3v3\AwsS3Adapter;
use League\Flysystem\Filesystem;

$client = S3Client::factory([
    'credentials' => [
        'key'    => 'your-key',
        'secret' => 'your-secret',
    ],
    'region' => 'your-region',
    'version' => 'latest|version',
]);

$adapter = new AwsS3Adapter($client, 'your-bucket-name', 'optional/path/prefix');
$s3Filesystem = new Filesystem($adapter);

然后,用一个打开您的文件,然后写信给另一个:

代码语言:javascript
复制
$contents = $localFilesystem->read('path/to/file.txt');
$s3Filesystem->write('path/to/file.txt', $contents);

您不需要要求、包括或评估任何东西!希望这能有所帮助!

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44436784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档