122 lines
3.1 KiB
Factor
122 lines
3.1 KiB
Factor
! Copyright (C) 2009 Chris Double.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: assocs help.markup help.syntax kernel strings ;
|
|
IN: s3
|
|
|
|
HELP: buckets
|
|
{ $values
|
|
{ "seq" "a sequence of " { $link bucket } " objects" }
|
|
}
|
|
{ $description
|
|
"Returns a list of " { $link bucket } " objects containing data on the buckets available on S3." }
|
|
{ $examples
|
|
{ $unchecked-example "USING: s3 ;" "buckets ." "{ }" }
|
|
}
|
|
;
|
|
|
|
HELP: create-bucket
|
|
{ $values
|
|
{ "bucket" string }
|
|
}
|
|
{ $description
|
|
"Creates a bucket with the given name."
|
|
}
|
|
{ $examples
|
|
{ $unchecked-example "USING: s3 ;" "\"testbucket\" create-bucket" "" }
|
|
}
|
|
;
|
|
|
|
HELP: delete-bucket
|
|
{ $values
|
|
{ "bucket" string }
|
|
}
|
|
{ $description
|
|
"Deletes the bucket with the given name."
|
|
}
|
|
{ $examples
|
|
{ $unchecked-example "USING: s3 ;" "\"testbucket\" delete-bucket" "" }
|
|
}
|
|
;
|
|
|
|
HELP: keys
|
|
{ $values
|
|
{ "bucket" string }
|
|
{ "seq" "a sequence of " { $link key } " objects" }
|
|
}
|
|
{ $description
|
|
"Returns a sequence of " { $link key } " objects. Each object in the sequence has information about the keys contained within the bucket."
|
|
}
|
|
{ $examples
|
|
{ $unchecked-example "USING: s3 ;" "\"testbucket\" keys . " "{ }" }
|
|
}
|
|
;
|
|
|
|
HELP: get-object
|
|
{ $values
|
|
{ "bucket" string }
|
|
{ "key" string }
|
|
{ "response" "The HTTP response object" }
|
|
{ "data" "The data returned from the http request" }
|
|
}
|
|
{ $description
|
|
"Does an HTTP request to retrieve the object in the bucket with the given key."
|
|
}
|
|
{ $examples
|
|
{ $unchecked-example "USING: s3 ;" "\"testbucket\" \"mykey\" http-get " "" }
|
|
}
|
|
;
|
|
|
|
HELP: put-object
|
|
{ $values
|
|
{ "data" object }
|
|
{ "mime-type" string }
|
|
{ "bucket" string }
|
|
{ "key" string }
|
|
{ "headers" assoc }
|
|
}
|
|
{ $description
|
|
"Stores the object under the key in the given bucket. The object has "
|
|
"the given mimetype. 'headers' should contain key/values for any headers to "
|
|
"be associated with the object. 'data' is any Factor object that can be "
|
|
"used as the 'data' slot in <post-data>. If it's a <pathname> it stores "
|
|
"the contents of the file. If it's a stream, it's the contents of the "
|
|
"stream, etc."
|
|
}
|
|
{ $examples
|
|
{ $unchecked-example "USING: s3 ;" "\"hello\" binary encode \"text/plain\" \"testbucket\" \"hello.txt\" H{ { \"x-amz-acl\" \"public-read\" } } put-object" "" }
|
|
{ $unchecked-example "USING: s3 ;" "\"hello.txt\" <pathname> \"text/plain\" \"testbucket\" \"hello.txt\" H{ { \"x-amz-acl\" \"public-read\" } } put-object" "" }
|
|
}
|
|
;
|
|
|
|
HELP: delete-object
|
|
{ $values
|
|
{ "bucket" string }
|
|
{ "key" string }
|
|
}
|
|
{ $description
|
|
"Deletes the object in the bucket with the given key."
|
|
}
|
|
{ $examples
|
|
{ $unchecked-example "USING: s3 ;" "\"testbucket\" \"mykey\" delete-object" "" }
|
|
}
|
|
;
|
|
|
|
ARTICLE: "s3" "Amazon S3"
|
|
"The " { $vocab-link "s3" } " vocabulary provides a wrapper to the Amazon "
|
|
"Simple Storage Service API."
|
|
$nl
|
|
"To use the api you must set the variables " { $link key-id } " and "
|
|
{ $link secret-key } " to your Amazon S3 key and secret key respectively. Once "
|
|
"this is done you can call any of the words below."
|
|
{ $subsections buckets
|
|
create-bucket
|
|
delete-bucket
|
|
keys
|
|
get-object
|
|
put-object
|
|
delete-object
|
|
}
|
|
;
|
|
|
|
ABOUT: "s3"
|