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"
 |