【问题标题】:Symfony2 what is the best file system abstact layer?Symfony2 最好的文件系统抽象层是什么?
【发布时间】:2014-01-16 10:38:00
【问题描述】:

什么是最好的 symfony 文件系统抽象层? 我需要在我的 symfony 项目中设置一个文件系统,类似于 Dropbox。 我不知道文件/媒体将被存储在哪里或如何存储,这就是为什么我需要那个抽象层来设置它并且不用担心更新文件位置。

我需要做什么:

-adding folders/files
-moveing folder/files to another lcoation
-delating folder/files
-download folder/files
-upload folder/files
-editing folder/files
-editing name of folder/files

你知道有什么好的捆绑包吗? symfony 2 有什么好的解决方案吗? 请告诉我为什么这个解决方案对我有好处?

【问题讨论】:

    标签: php symfony filesystems bundle layer


    【解决方案1】:

    目前可用的选项似乎是:

    1) Gaufrette

    为了传输某些内容,您需要先将其放入内存中。当您必须处理大文件时,这是一个问题。 Gaufrette 具有文件系统抽象层,但无法在文件系统之间移动对象。还缺少一些基本功能,例如 - 删除目录。

    感觉更像是一个带有不同适配器的键值存储模拟器。

    2) Filicious

    在纸面上看起来很有希望,但实际上并非如此。文档都是错误的。它提到了不存在的名称空间和找不到的类。目前,Filicious 周围的大多数东西似乎都没有实现。到目前为止,唯一可用的适配器是本地适配器。您可以在他们的website 上跟踪进度。

    3)Flysystem

    看起来比上面提到的要好。有流支持。他们也有这个 MountManager,你可以用它在不同的文件系统之间传输文件。

    总之,我的选择是 Flysystem。如果它符合您的要求,您最好自己检查一下。

    【讨论】:

    • 请您引用与在内存中首先处理 Gaufrette 中的文件相关的点吗?在我正在进行的项目中,这是我关心的问题,但我在任何地方都找不到任何相关信息。
    • 它在代码库中。您可以看到他们在本地适配器上使用了 file_get_contents(),这将获取文件二进制内容并将其放入变量中。如果该文件大小为 5GB 左右,则该变量将消耗 5GB 内存。其他适配器也是如此。例如,FTP 使用 stream_get_contents()。虽然在内存中获取完整文件适用于小文件,但对于大文件来说却是一个障碍。应改为使用流。
    • 这个页面和评论在谷歌排名中应该都比他们高很多。就我个人而言,我在一些项目中同时使用了 Gaufrette 和 Flysystem,对于您在网上找到的所有信息,Gaufrette 似乎是正确的选择,但实际上,这很让人头疼。带有 mountmanager 的 Flysystem 使文件处理按应有的方式进行
    【解决方案2】:

    https://github.com/KnpLabs/KnpGaufretteBundle

    当然是最深入的实现,它包括 Dropbox。

    【讨论】:

    • 但是我如何上传一些媒体文件,如电影或图像?它仅适用于txt文件吗? $content = 'Hello I am the new content'; $filesystem->write('myFile', $content);
    • 个人没用过。我只知道它抽象了文件系统管理。我想它不关心上传什么文件类型。
    • 我找到了很好的教程,如何使用 gaufrette 上传图像做亚马逊:braincrafted.com/symfony2-gaufrette-s3 我认为它会有所帮助
    • 但它是否允许我获取文件夹内容并显示它,例如文件名类型表?还是什么?
    • 我问了what is the best file system abstact layer?,还说我需要类似dropbox的东西,所以它还包括浏览选项,这不是另一个问题,而是它的更深层含义。
    猜你喜欢
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2010-11-01
    • 1970-01-01
    • 2012-01-08
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多