首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奏鸣曲媒体CDN Rackspace

奏鸣曲媒体CDN Rackspace
EN

Stack Overflow用户
提问于 2017-03-22 16:37:29
回答 1查看 140关注 0票数 0

Sonata Media的下一个问题是:我试图使用Rackspace CDN上传图像:根据当前文档,我的配置文件如下所示:

代码语言:javascript
复制
cdn:
    server:
        path: %cdn_url%
filesystem:
    local:
        directory:  %kernel.root_dir%/../web/uploads/media
        create:     false
    rackspace:
        url: %rackspace.opencloud.host%
        secret:
            username: %rackspace.opencloud.username%
            apiKey: %rackspace.opencloud.api_key%
        region: LON
        containerName: projectName
        create_container: false
    replicate:
        master: sonata.media.adapter.filesystem.opencloud
        slave: sonata.media.adapter.filesystem.local

在提供者配置上:

代码语言:javascript
复制
  providers:
    image:
        filesystem: sonata.media.filesystem.replicate
        cdn: sonata.media.cdn.server
        resizer: sonata.media.resizer.square
        allowed_extensions: ['jpg', 'png', 'gif', 'jpeg']
        allowed_mime_types: ['image/pjpeg','image/jpeg','image/png','image/x-png', 'image/gif']

问题是(我是如何发现这个错误的)如果Rackspace关闭了,或者在应用程序的每一页上都提供了不正确的用户名/密码,我就会得到这个答案:

代码语言:javascript
复制
Client error response [status code] 401 [reason phrase] Unauthorized [url] https://lon.auth.api.rackspacecloud.com/v2.0/tokens

这是因为Gaufrette Opencloud试图在内核负载上创建连接。

作为临时修复,最快的解决方案是创建编译器pass并检查验证方法是否返回false,然后用本地文件系统适配器替换参数0以复制定义。

我的问题是:

  1. 如何避免在内核负载上创建Rackspace连接?
  2. 如果Rackspace中断,如何在Rackspace或其他适配器(本地或其他ftp服务器)之间交换?

谢谢,如果没有足够的资料,请留下评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 14:51:16

显然,在量规中实现的延迟加载有一个解决方案:https://github.com/KnpLabs/KnpGaufretteBundle/issues/72

我要做的就是:

代码语言:javascript
复制
sonata.media.adapter.open_stack:
    class: OpenCloud\Rackspace
    arguments: [ %rackspace.opencloud.host%, { username: %rackspace.opencloud.username%, apiKey: %rackspace.opencloud.api_key% }]
sonata.media.adapter.object_store_factory:
    class: Gaufrette\Adapter\OpenStackCloudFiles\ObjectStoreFactory
    arguments: [ @sonata.media.adapter.open_stack, "LON", ""]
sonata.media.adapter.filesystem.lazyopencloud:
    class: Gaufrette\Adapter\LazyOpenCloud
    arguments: [ @sonata.media.adapter.object_store_factory, %rackspace.opencloud.container_name%]

并将复制母版更改为sonata.media.adapter.filesystem.lazyopencloud

希望它有帮助:)

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

https://stackoverflow.com/questions/42957712

复制
相关文章

相似问题

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