Created
May 18, 2010 05:03
-
-
Save cmoore/404636 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Hack | |
import qualified Web.Encodings as Web | |
import Data.ByteString.Lazy.Char8 as BS | |
galleryDispatch ai@(\x -> head (pElements x) -> "u") = | |
case requestMethod (a_env ai) of | |
POST -> do | |
dbg "galleryDispatch: POST on /upload." | |
let env = a_env ai | |
case ((,) <$> lookup "Content-Type" (http env) | |
<*> lookup "Content-Length" (http env)) of | |
Nothing -> do | |
dbg "Ack!" | |
redirect' "/profile" | |
Just (ty,_len) -> do | |
dbg $ "TY: " ++ (show ty) | |
let bound = replace "boundary=" "" $ head $ drop 1 $ split " " ty | |
dbg $ "Boundary: " ++ (show bound) | |
let uid = fromJust $ a_uid ai | |
-- For testing, I'm just going to send one image | |
let (_,[(a,fi)]) = Web.parseMultipart bound $ hackInput env | |
dbg $ "a: " ++ (show $ BS.unpack a) | |
dbg $ "Content-Type: " ++ (show $ BS.unpack $ Web.fileContentType fi) | |
let filename = BS.unpack $ Web.fileName fi | |
dbg $ "Filename: " ++ (show filename) | |
let s3o_bucket = "static.iplayedthat.com" | |
let s3o_ct = (show $ BS.unpack $ Web.fileContentType fi) | |
let s3o_data = Web.fileContent fi | |
rq <- sendObject awsConn $ S3Object { | |
obj_bucket = s3o_bucket, | |
obj_name = ("images/" ++ uid ++ "/" ++ filename), | |
content_type = s3o_ct, | |
obj_headers = [("acl","public-read")], | |
obj_data = s3o_data } | |
dbg $ "From AWS: " ++ (show rq) | |
sendRaw "success" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment