>LOCAL loIP as wwipstuff OF wwipstuff >loIP=NEWOBJECT('wwipstuff','wwipstuff') >loIP.nhttppostmode=2 > >LOCAL lcPolicyDoc,lcPolicyDocEncoded,lcSignature >TEXT TO lcPolicyDoc NOSHOW PRETEXT 15 >{"expiration": "2015-01-01T00:00:00Z", > "conditions": [ > {"bucket": "mybucket"}, > ["starts-with", "$key", ""], > {"acl": "public-read"}, > ["starts-with", "$Content-Type", ""], > ["content-length-range", 0, 1048576] > ] >} >ENDTEXT >lcPolicyDocEncoded=STRCONV(lcPolicyDoc,13) >lcSignature=hmac(lcPolicyDocEncoded,"SecretAccessKey",1) > > >loIP.cHTTPProxyName="" >IF loIP.HTTPConnect("mybucket.s3.amazonaws.com",'','',.T.)=0 > loIP.encodefile > lcBuffer=loIP.encodefile("c:\images\myimage.jpg") > > loIP.AddPostKey('AWSAccessKeyId',"MyAccessKeyID") > loIP.AddPostKey('bucket',"mybucket") > loIP.AddPostKey('policy',lcPolicyDocEncoded) > loIP.AddPostKey('signature',lcSignature) > > ** image specific > loIP.AddPostKey('acl',"public-read") > loIP.AddPostKey('Content-Type',"image/jpeg") > > loIP.AddPostKey('key',"myimage.jpg") > loIP.AddPostKey('file',lcBuffer) > > lcOutput="" > lnSize=0 > > lnResult=loIP.HTTPGetEx([],@lcOutput,@lnSize) > loIP.HTTPClose > IF lnResult=0 > ** good > ? 'success' > ELSE > ? 'error '+loIP.cerrormsg+' '+lcOutput > ENDIF >ELSE > ? 'error '+loIP.cerrormsg >ENDIF >