bravesheep/flysystem-url-bundle

此包已被弃用且不再维护。未建议替代包。

FlySystem URL bundle 通过指定 URL 参数生成 flysystem 服务

v0.1.1 2016-07-21 14:05 UTC

This package is auto-updated.

Last update: 2022-11-25 20:45:27 UTC


README

一个基于 symfony 配置中指定的 URL 创建 flysystem 服务的 Symfony 包。

安装和配置

使用 Composer,通过 require 命令将包添加到依赖中:composer require bravesheep/flysystem-url-bundle

将包添加到 AppKernel

app/AppKernel.php 中添加包。**注意**:为了让其他使用该包的包能够获取到该包定义的参数,您需要将其放在这些包之前。下面将提供更多信息。

public function registerBundles()
{
    return array(
        // ...
        new Bravesheep\FlysystemUrlBundle\BravesheepFlysystemUrlBundle(),
        // ...
    );
}

配置包

对于此包,您需要配置要使用的 URL 以及生成的服务的服务名称。下面是一个示例配置,其中 media_fs_url 参数(您可以在 parameters.yml 中添加,例如)为您生成一个 flysystem 适配器服务。

bravesheep_flysystem_url:
    urls:
        # Generates media_fs_adapter.adapter service
        media:
            url: %media_fs_url%
            prefix: media_fs_adapter

接受的 URL 格式

接受多种 URL 格式,以下是支持的 URL 格式的简要概述

  • local:///path/to/directoryfile:///path/to/directory 用于本地文件系统存储。对于本地 URL,需要一个绝对路径。例如使用 kernel.root_dir 参数:file://%kernel.root_dir%/../web/media。可以使用 lock 查询参数来指示不同的锁定行为:local:///path/to/directory?lock=false。可以使用 file_perm 参数设置公共文件权限:local:///path/to/directory?file_perm=0744。同样,file_perm_privatedir_permdir_perm_private 参数也可用。
  • ftp://user:pass@host:port/path/to/dir 用于 FTP 使用。另外,可以使用 ftps 方案进行 SSL 加密的 FTP。
  • sftp://user:pass@host:port/path/to/dir?keyfile=path/to/keyfile 或使用相同的操作指定 ssh 方案。
  • dropbox://access_token:app_secret@dropbox.com 用于 Dropbox 访问。
  • s3://key:secret@region/bucket 用于 Amazon AWS S3。另外,还有 awss3awss3v3 方案可用。对于 AWS API 的 v2 版本,您可以使用 awss3v2 作为方案。
  • null:// 或仅 null 可用于测试存储适配器,该适配器不存储任何内容。
  • zip:///path/to/file.zip 可用于本地 zip 访问。
  • webdav://user:pass@host:port/path/to/dir 可用于 WebDAV 访问。也可以使用 http://user:pass@host:port/path/to/dirhttps://user:pass@host:port/path/to/dir

额外的变量编码

默认情况下,此包不仅创建一个 flysystem 适配器服务,还可以生成一些额外的参数,您可以直接使用这些参数。

默认情况下,此组件会生成一个参数,您可以使用该参数在OneupFlysystemBundle中作为适配器的值。

oneup_flysystem:
    adapters:
        media_adapter: %media_fs_adapter.oneup_adapter_params%

默认情况下,如果组件能自动确定该URL,它还会为一些服务生成一个公开的前缀URL。例如,您可以使用它与VichUploaderBundle一起使用。

vich_uploader:
    mappings:
        example:
            upload_destination: media_fs
            uri_prefix: %media_fs_adapter.public_url_prefix%

如果您不需要这些参数,您可以在此组件的配置中更改它们。

bravesheep_flysystem_url:
    urls:
        example:
            url: %example_param%
            prefix: example_fs_prefix
            encoders: [] # In this case no parameter encoders are used, only the service is generated