S3Store.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. define("dojox/data/S3Store", ["dojo/_base/declare", "dojox/data/JsonRestStore", "dojox/rpc/ProxiedPath"],
  2. function(declare, JsonRestStore, ProxiedPath) {
  3. // S3JsonRestStore is an extension of JsonRestStore to handle
  4. // Amazon's S3 service using JSON data
  5. /*===== var JsonRestStore = dojox.data.JsonRestStore =====*/
  6. return declare("dojox.data.S3Store", JsonRestStore,
  7. {
  8. _processResults : function(results){
  9. // unfortunately, S3 returns query results in XML form
  10. var keyElements = results.getElementsByTagName("Key");
  11. var jsResults = [];
  12. var self = this;
  13. for(var i=0; i <keyElements.length;i++){
  14. var keyElement = keyElements[i];
  15. // manually create lazy loaded Deferred items for each item in the result array
  16. var val = {
  17. _loadObject: (function(key,val){
  18. return function(callback){
  19. // when a callback is added we will fetch it
  20. delete this._loadObject;
  21. self.service(key).addCallback(callback);
  22. };
  23. })(keyElement.firstChild.nodeValue,val)
  24. };
  25. jsResults.push(val);
  26. }
  27. return {totalCount:jsResults.length, items: jsResults};
  28. }
  29. }
  30. );
  31. });