Monday, March 14, 2011 at 3:24 AM.
myServerFarmSuite.uploadFolderToS3
on uploadFolderToS3 (folder) {
<<Changes
<<3/14/11; 2:23:53 AM by DW
<<Updated to shorten S3 path. There's a severe limit, and we weren't being conservative.
<<12/10/10; 10:18:25 AM by DW
<<Created.
local (adrdata = myServerFarmSuite.init (), f, pc = file.getpathchar (), ctfiles = 0, ctbytes = 0);
local (baseS3path = "/scripting/farm/" + adrdata^.prefs.myName + "/", startticks = clock.ticks ());
<<s3.newobject (bases3path + "test2.txt", string (clock.now ()))
fileloop (f in folder, infinity) {
if file.filefrompath (f) != ".DS_Store" {
local (filedata = string (file.readwholefile (f)));
local (relpath = string.replaceall (string.delete (f, 1, sizeof (folder)), pc, "/"));
msg (file.filefrompath (f));
s3.newObject (baseS3path + relpath, string (filedata));
ctfiles++;
ctbytes = ctbytes + file.size (f)}};
log2.add ("myServerFarm", "S3", "Uploaded " + ctfiles + " file(s) with " + string.gigabytestring (ctbytes) + " to " + baseS3path + ".", startticks)};
bundle { //test code
local (folder = myServerFarmSuite.getMyFolder () + "Nightly Backup" + file.getpathchar ());
uploadFolderToS3 (folder)}
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.