Tuesday, March 15, 2011 at 12:00 AM.
system.verbs.apps.s3.newObject
on newObject (relpath, data, type=nil, adrmeta=nil, acl="public-read") {
<<Changes
<<4/12/06; 4:37:34 AM by DW
<<If type is nil, try to get the type from user.webserver, based on the extension.
<<4/11/06; 9:33:36 AM by DW
<<Created.
local (response);
local (adrdata = s3.init ());
local (apiUrl = adrdata^.accounts.[adrdata^.currentaccount].apiurl);
if type == nil {
local (extension = string.nthfield (relpath, ".", string.countfields (relpath, ".")));
local (adrtype = @user.webserver.prefs.ext2MIME.[extension]);
if defined (adrtype^) {
type = adrtype^}
else {
type = "text/plain"}};
response = s3.httpClient ("PUT", relpath, content:data, adrMeta:adrmeta, content_type:type, acl:acl);
<<scratchpad.response = response
return (apiUrl + relpath)};
bundle { //test code
local (i, filetext = string.filledstring ("123456789 ", 1000));
webbrowser.openurl (newObject ("/scripting/myServerFarm/test" + 1 + ".txt", string (this^), nil))}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.