When you get mosso (Rackspace CDN) support let me know, I will be the first the make the jump.
| Comment | File | Size | Author |
|---|---|---|---|
| #11 | storage_rackspace.info | 160 bytes | jbrown |
| #11 | storage_rackspace.install.txt | 869 bytes | jbrown |
| #11 | storage_rackspace.module.txt | 9.15 KB | jbrown |
| #7 | storage_rackspace.info | 160 bytes | jbrown |
| #7 | storage_rackspace.install.txt | 689 bytes | jbrown |
Comments
Comment #1
matt2000 commentedMosso is now known as the Rackspace Cloud.
Comment #2
matt2000 commentedActually, this isn't a bd_video issue. Moving, although it's probably duplicated in the Storage API queue.
Comment #3
bryancasler commentedI am confused by your response, could you please re-state it.
Comment #4
matt2000 commentedbd_video module is ignorant of CDNs. This is the domain of StorageAPI module. So I moved the issue to the StorageAPI issue queue.
Comment #5
matt2000 commentedHere's a relatively functional start on a service module for Rackspace Cloud Files.
Copy these files to a subfolder of storage_api/services/ (renaming the .module.txt file to .module) along with the Cloud Files PHP client code files found here:
http://github.com/rackspace/php-cloudfiles/tree
As noted in the code comments, I couldn't find explicit documentation on what is means for a service to be 'dynamic', so I don't know the consequences of identifying could files as such... except that it let me get away with writing less code and it 'works for me(tm).' ;-)
Note that this code assumes that the container already exists; i.e, that it was created using the Rackspace admin UI. There's no reason that hook_storage_container_create() couldn't be modified to create a non-existent container. I just didn't bother.
Comment #6
jbrown commentedThis is excellent matt2000! I'll take a look at it tomorrow.
Comment #7
jbrown commentedOkay - I've been hacking on it for a couple of days.
Its working pretty well, but needs some more love.
Should get it polished off tomorrow.
Comment #8
matt2000 commentednice. Is there any documentation on how storage_api treats a 'file' versus and 'object' and what it really means for a service to be 'dynamic' ?
Comment #9
jbrown commentedstorage_api.api.php has a very brief explanation. Here is the full story:
Storage API implements deduplication where possible.
The problem is that with most storage services, the filename in the Content-Disposition HTTP header must be set when the instance is created. These services are said to not be dynamic.
The only dynamic service at the moment is 'Filesystem / Drupal'. It serves files via Drupal (like private files in Drupal core). It just spits out the correct Content-Disposition HTTP header depending on which file is being served.
Object instances can have deduplication. File instances cannot.
Where all of the following conditions are met, a file instance is created instead of an object instance:
Therefore an instance in a dynamic service will never need to be a file instance and the file instance hooks will never be called for that service.
Comment #10
jbrown commentedAccording to tech support at Rackspace it is not possible at all to set the Content-Disposition header in Cloud Files.
So I just tag the filename onto the end of the URL for file instances for this service. Unfortunately, browsers wont always bring up a save as dialog box without Content-Disposition: attachment; .
Comment #11
jbrown commentedOkay - its finished.
I'll check it in now.
Comment #12
jbrown commentedhttp://drupal.org/cvs?commit=297402
Comment #13
matt2000 commentedThe project page text needs to be updated.
Thanks for finishing this up & adding it!
Comment #14
jbrown commenteddone
Comment #15
bryancasler commentedThis is exciting, been following this thread for a while. Does jbrowns post #14 means that storage api now supports rackspace's cloud files ?
Comment #16
jbrown commentedyes
Comment #17
jbrown commentedIt is now documented here: http://drupal.org/node/656714