Skip to content

@cmoore /gist:404636
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
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
Something went wrong with that request. Please try again.