0

Ich habe das nächste Problem mit Sonata Medien: Ich versuche, die für das Hochladen von CDN Rackspace Bilder zu verwenden: Meine config-Datei wie diese basieren auf aktuellen Dokumentation aussieht:Sonata Media-CDN Rackspace

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 

Und auf Anbieter config:

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'] 

Das Problem ist (wie ich diesen Fehler entdeckt), wenn Rackspace oder falsches Benutzername/Passwort ist auf jeder Seite der App zur Verfügung gestellt werden wir diese Antwort bekommen:

Client error response [status code] 401 [reason phrase] Unauthorized [url] https://lon.auth.api.rackspacecloud.com/v2.0/tokens 

Dies ist, weil Gaufrette Opencloud versucht, eine Verbindung auf Kernel laden zu erstellen.

Die schnellste Lösung als temporäre Lösung bestand darin, einen Compiler-Durchlauf zu erstellen und zu überprüfen, ob die Authentifizierungsmethode false zurückgibt, und dann das Argument 0 für die Replikatdefinition durch den lokalen Dateisystemadapter zu ersetzen.

Meine Fragen sind:

  1. Wie kann ich auf Kernel laden die Verbindung zu vermeiden Rackspace zu schaffen?
  2. Falls Rackspace nach unten, wie kann ich zwischen Rackspace oder anderen Adapter (lokal oder anderen FTP-Server)
  3. tauschen

Vielen Dank im Voraus und bitte den Fall gibt es keine ausreichenden Informationen zur Verfügung gestellt bitte einen Kommentar hinterlassen.

Antwort

0

Offenbar gibt es eine Lösung für verzögertes Laden in Gaufrette implementiert: https://github.com/KnpLabs/KnpGaufretteBundle/issues/72

Alles, was ich tun musste, ist:

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%] 

Und Änderungsstamm replizieren

sonata.media.adapter.filesystem.lazyopencloud

Hoffe es hilft :)