factor/extra/s3/s3-docs.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"