public OutputModel sendApiRequest(Dictionary <object, object> context, RequestInputModel paramBean, Type outputClass) { string validate = paramBean != null?paramBean.validateParam() : ""; EvnContext evnContext = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY]; string evnValidate = evnContext.validateParam(); if (!QSStringUtil.isEmpty(validate) || !QSStringUtil.isEmpty(evnValidate)) { if (QSStringUtil.isEmpty(validate)) { validate = evnValidate; } try { OutputModel model = (OutputModel)Activator.CreateInstance(outputClass); QSHttpRequestClient.fillResponseCallbackModel(QSConstant.REQUEST_ERROR_CODE, validate, model); return(model); } catch (Exception e) { logger.Fatal(e.Message); throw new QSException(e.Message); } } else { HttpWebRequest request = buildRequest(context, paramBean); return(QSHttpRequestClient.getInstance().requestAction(request, evnContext.isSafeOkHttp(), outputClass)); } }
public void qcstorGetObject() { EvnContext evn = EvnContext.loadFromFile(System.Environment.CurrentDirectory + "/tmp/test_key.csv"); String bucketName = "java-bucket"; Bucket ss = new Bucket(evn, bucketName); String objectName = "2.txt"; Bucket.GetObjectInput bb = new Bucket.GetObjectInput(); //bb.setIfMatch("cda0a741aac6541c730ed6be6c6f5bcc"); Bucket.GetObjectOutput dd = ss.getObject(objectName, bb); Console.WriteLine(dd + ""); if (dd != null && dd.getBodyInputStream() != null) { FileStream ff = new FileStream("D:\\5.txt", FileMode.OpenOrCreate); StreamWriter os = new StreamWriter(ff); string buffer; while ((buffer = dd.getBodyInputStream().ReadLine()) != null) { os.WriteLine(buffer); } os.Flush(); os.Close(); ff.Close(); dd.getBodyInputStream().Close(); } }
public void sendApiRequestAsync( Dictionary <object, object> context, RequestInputModel paramBean, ResponseCallBack callback) { string validate = paramBean != null?paramBean.validateParam() : ""; EvnContext evnContext = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY]; string evnValidate = evnContext.validateParam(); if (!QSStringUtil.isEmpty(validate) || !QSStringUtil.isEmpty(evnValidate)) { if (QSStringUtil.isEmpty(validate)) { validate = evnValidate; } OutputModel Out = QSParamInvokeUtil.getOutputModel(callback); QSHttpRequestClient.fillResponseCallbackModel(QSConstant.REQUEST_ERROR_CODE, validate, Out); callback.onAPIResponse(Out); } else { HttpWebRequest request = buildRequest(context, paramBean); QSHttpRequestClient.getInstance() .requestActionAsync(request, evnContext.isSafeOkHttp(), callback); } }
public static String getExpireAuth(Dictionary <object, object> context, int expiresSecond, RequestInputModel Params) { EvnContext evnContext = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY]; Dictionary <object, object> paramsQuery = QSParamInvokeUtil.getRequestParams(Params, QSConstant.PARAM_TYPE_QUERY); Dictionary <object, object> paramsHeaders = QSParamInvokeUtil.getRequestParams(Params, QSConstant.PARAM_TYPE_HEADER); paramsHeaders.Remove(QSConstant.HEADER_PARAM_KEY_DATE); paramsHeaders.Clear(); paramsHeaders.Add(QSConstant.HEADER_PARAM_KEY_EXPIRES, expiresSecond + ""); string method = (string)context[QSConstant.PARAM_KEY_REQUEST_METHOD]; string bucketName = (string)context[QSConstant.PARAM_KEY_BUCKET_NAME]; string requestPath = (string)context[QSConstant.PARAM_KEY_REQUEST_PATH]; requestPath = requestPath.Replace(QSConstant.BUCKET_NAME_REPLACE, bucketName); if (context.ContainsKey(QSConstant.PARAM_KEY_OBJECT_NAME)) { requestPath = requestPath.Replace(QSConstant.OBJECT_NAME_REPLACE, (string)context[QSConstant.PARAM_KEY_OBJECT_NAME]); } string authSign = getSignature( evnContext.getAccessKey(), evnContext.getAccessSecret(), method, requestPath, paramsQuery, paramsHeaders); return(HttpUtility.UrlEncode(authSign, Encoding.GetEncoding(QSConstant.ENCODING_UTF8))); }
public void initService() { EvnContext evnContext = TestUtil.getEvnContext(); storSerivce = new QingStor(evnContext); Console.WriteLine("test : initService"); }
public void testConfig() { String config = "access_key: 'testkey'\n" + "access_secret: 'test_asss'\n" + "host: qingcloud.com\n" + "port: 443\n" + "protocol: https\n"; FileStream f = new FileStream(System.Environment.CurrentDirectory + "/tmp/key.csv", FileMode.Open); Boolean bConf = false; try { StreamReader output = new StreamReader(f); output.ReadToEnd(); output.Close(); f.Close(); bConf = true; } catch (Exception e) { System.Console.Write(e.Message); } if (bConf) { EvnContext evnContext = EvnContext.loadFromFile(System.Environment.CurrentDirectory + "/tmp/key.csv"); Assert.AreEqual(evnContext.getAccessKey(), "testkey"); Assert.AreEqual(evnContext.getAccessSecret(), "testaccess"); Assert.AreEqual(evnContext.getRequestUrl(), "https://qingcloud.com:443"); } }
public void initialize_the_bucket_CORS() { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); }
public void sendApiRequestAsync(String requestUrl, Dictionary <object, object> context, ResponseCallBack callback) { EvnContext evnContext = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY]; HttpWebRequest request = QSHttpRequestClient.getInstance().buildUrlRequest(requestUrl); QSHttpRequestClient.getInstance().requestActionAsync(request, evnContext.isSafeOkHttp(), callback); }
public void list_buckets() { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); storSerivce = new QingStor(evnContext); listOutput = storSerivce.listBuckets(new QingStor.ListBucketsInput()); }
public void initialize_QingStor_service() { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); storSerivce = new QingStor(evnContext); Console.WriteLine("test : initService"); }
public void get_bucket_policy() { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); getBucketPolicyOutput = Bucket.getPolicy(); }
public void delete_bucket_CORS() { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); deleteBucketCORSOutput = Bucket.deleteCORS(); }
public OutputModel sendApiRequest( string requestUrl, Dictionary <object, object> context, Type outputClass) { EvnContext evnContext = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY]; HttpWebRequest request = QSHttpRequestClient.getInstance().buildUrlRequest(requestUrl); return(QSHttpRequestClient.getInstance() .requestAction(request, evnContext.isSafeOkHttp(), outputClass)); }
public void testDefault() { EvnContext evnContext = new EvnContext("testkey", "test_asss"); Assert.AreEqual(evnContext.getAccessKey(), "testkey"); Assert.AreEqual(evnContext.getAccessSecret(), "test_asss"); Assert.AreEqual(evnContext.getRequestUrl(), "https://qingstor.com"); Assert.AreEqual(evnContext.getLog_level(), QSConstant.LOGGER_ERROR); }
public void put_bucket_policy(String arg1) { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); Bucket.PutBucketPolicyInput input = new Bucket.PutBucketPolicyInput(); input.setBodyInput(arg1); putBucketPolicyOutput = Bucket.putPolicy(input); }
public void initialize_the_object_with_key(String arg1) { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); subService = new Bucket(evnContext, bucketName); evnContext.setLog_level(QSConstant.LOGGER_INFO); Bucket.PutObjectInput input = new Bucket.PutObjectInput(); //objectOutput = subService.PutObject(arg1,input); test_object = arg1; }
public void put_bucket_CORS(String arg1) { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); Bucket.PutBucketCORSInput input = new Bucket.PutBucketCORSInput(); List <Object> cors = new List <Object>(); input.setBodyInput(arg1); putBucketCORSOutput = Bucket.putCORS(input); }
public void put_bucket_external_mirror(String arg1) { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); Bucket.PutBucketExternalMirrorInput input = new Bucket.PutBucketExternalMirrorInput(); string obj = QSJSONUtil.convertJSONObject(arg1); input.setSourceSite(QSJSONUtil.toString(obj, "source_site")); putBucketExternalMirrorOutput = Bucket.putExternalMirror(input); }
public void qcstorDeleteBucketObject() { EvnContext evn = EvnContext.loadFromFile(System.Environment.CurrentDirectory + "/tmp/test_key.csv"); String bucketName = "java-bucket"; Bucket ss = new Bucket(evn, bucketName); String objectName = "2.txt"; //bb.setIfMatch("cda0a741aac6541c730ed6be6c6f5bcc"); OutputModel dd = ss.deleteObject(objectName); Console.WriteLine(dd + ""); }
public void initiate_multipart_upload_with_key(String arg1) { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); Bucket.InitiateMultipartUploadInput input = new Bucket.InitiateMultipartUploadInput(); //input.setContentType(apkContentType); initOutput = Bucket.initiateMultipartUpload(arg1, input); multipart_upload_name = arg1; multipart_upload_id = initOutput.getUploadID(); }
public void put_object_with_key(String arg1) { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); evnContext.setLog_level(QSConstant.LOGGER_INFO); subService = new Bucket(evnContext, bucketName); Bucket.PutObjectInput input = new Bucket.PutObjectInput(); FileStream f = new FileStream("D:\\2.txt", FileMode.Open); input.setBodyInputFile(f); input.setContentLength((int)f.Length); test_object = chinesePrefix + arg1 + chineseSuffix; putObjectOutput = subService.putObject(test_object, input); }
public void put_bucket_ACL() { // Write code here that turns the phrase above into concrete actions EvnContext evnContext = TestUtil.getEvnContext(); Bucket = new Bucket(evnContext, bucketName); Bucket.PutBucketACLInput input = new Bucket.PutBucketACLInput(); Types.ACLModel acl = new Types.ACLModel(); acl.setPermission("FULL_CONTROL"); Types.GranteeModel gm = new Types.GranteeModel(); gm.setName("QS_ALL_USERS"); gm.setType("group"); acl.setGrantee(gm); List <Types.ACLModel> aa = new List <Types.ACLModel>(); aa.Add(acl); input.setACL(aa); putBucketACLOutput = Bucket.putACL(input); }
public static string getObjectAuthRequestUrl( EvnContext evnContext, String zone, String bucketName, String objectName, int expiresSecond) { Dictionary <object, object> context = new Dictionary <object, object>(); try { objectName = percentEncode(objectName); context.Add(QSConstant.PARAM_KEY_REQUEST_ZONE, zone); context.Add(QSConstant.EVN_CONTEXT_KEY, evnContext); context.Add("OperationName", "GetObject"); context.Add("APIName", "GetObject"); context.Add("ServiceName", "QingStor"); context.Add("RequestMethod", "GET"); context.Add("RequestURI", "/<bucket-name>/<object-key>"); context.Add("bucketNameInput", bucketName); context.Add("objectNameInput", objectName); DateTime fi = Convert.ToDateTime("1970-1-1"); int expiresTime = (int)((DateTime.Now - fi).Seconds + expiresSecond); string expireAuth = getExpireAuth(context, expiresTime, new RequestInputModel()); string serviceUrl = evnContext.getRequestUrl(); string storRequestUrl = serviceUrl.Replace("://", "://" + zone + "."); if (objectName != null && objectName.IndexOf("?") > 0) { return(storRequestUrl + "/" + bucketName + "/" + objectName + "&access_key_id=" + evnContext.getAccessKey() + "&expires=" + expiresTime.ToString() + "&signature=" + expireAuth); } else { return(storRequestUrl + "/" + bucketName + "/" + objectName + "?&access_key_id=" + evnContext.getAccessKey() + "&expires=" + expiresTime.ToString() + "&signature=" + expireAuth); } } catch (Exception e) { throw new QSException(e.Message); } }
public void testExpireString() { EvnContext evnContext = new EvnContext("testkey", "test_asss"); String req1 = null; try { req1 = QSSignatureUtil.getObjectAuthRequestUrl( evnContext, "testzone", "bucketName", "objectName/dd.txt", 1000); } catch (Exception e) { Console.WriteLine(e.Message); } Assert.AreEqual( req1.IndexOf("https://bucketName.testzone.qingstor.com/objectName/dd.txt?") == -1, true); }
public static EvnContext getEvnContext() { return(EvnContext.loadFromFile(System.Environment.CurrentDirectory + "/tmp/test_key.csv")); }
private HttpWebRequest buildRequest(Dictionary <object, object> context, RequestInputModel Params) { EvnContext evnContext = (EvnContext)context[QSConstant.EVN_CONTEXT_KEY]; string zone = (string)context[QSConstant.PARAM_KEY_REQUEST_ZONE]; Dictionary <object, object> paramsQuery = QSParamInvokeUtil.getRequestParams(Params, QSConstant.PARAM_TYPE_QUERY); Dictionary <object, object> paramsBody = QSParamInvokeUtil.getRequestParams(Params, QSConstant.PARAM_TYPE_BODY); Dictionary <object, object> paramsHeaders = QSParamInvokeUtil.getRequestParams(Params, QSConstant.PARAM_TYPE_HEADER); if (context.ContainsKey(QSConstant.PARAM_KEY_USER_AGENT)) { paramsHeaders.Add(QSConstant.PARAM_KEY_USER_AGENT, context[QSConstant.PARAM_KEY_USER_AGENT]); } String requestApi = (String)context[QSConstant.PARAM_KEY_REQUEST_APINAME]; //string FileBody = GetBodyFile(context[QSConstant.PARAM_KEY_OBJECT_NAME].ToString()).ToString(); paramsHeaders = initHeadContentMd5(requestApi, paramsBody, paramsHeaders); string method = (string)context[QSConstant.PARAM_KEY_REQUEST_METHOD]; string bucketName = (string)context[QSConstant.PARAM_KEY_BUCKET_NAME]; string requestPath = (string)context[QSConstant.PARAM_KEY_REQUEST_PATH]; string objectName = ""; if (context.ContainsKey(QSConstant.PARAM_KEY_OBJECT_NAME)) { objectName = context[QSConstant.PARAM_KEY_OBJECT_NAME].ToString(); } if (!paramsHeaders.ContainsKey(QSConstant.HEADER_PARAM_KEY_CONTENTTYPE)) { paramsHeaders.Add(QSConstant.HEADER_PARAM_KEY_CONTENTTYPE, MimeMapping.GetMimeMapping(objectName)); } if (context.ContainsKey(QSConstant.PARAM_KEY_OBJECT_NAME)) { requestPath = requestPath.Replace(QSConstant.BUCKET_NAME_REPLACE, bucketName); requestPath = requestPath.Replace(QSConstant.OBJECT_NAME_REPLACE, QSStringUtil.urlCharactersEncoding(objectName)); } else { requestPath = requestPath.Replace(QSConstant.BUCKET_NAME_REPLACE, bucketName + "/"); } string authSign = QSSignatureUtil.getAuth( evnContext.getAccessKey(), evnContext.getAccessSecret(), method, requestPath, paramsQuery, paramsHeaders); string requestSuffixPath = getRequestSuffixPath((string)context[QSConstant.PARAM_KEY_REQUEST_PATH], bucketName, objectName); paramsHeaders.Add("Authorization", authSign); logger.Info(authSign); string singedUrl = getSignedUrl( evnContext.getRequestUrl(), zone, bucketName, paramsQuery, requestSuffixPath); if (singedUrl.IndexOf("&upload_id") != -1)//?part_number=0&upload_id=1asfdsf { if (singedUrl.IndexOf("upload_id") > singedUrl.IndexOf("part_number")) { String temp1 = singedUrl.Substring(singedUrl.IndexOf("part_number"), singedUrl.IndexOf("&upload_id") - singedUrl.IndexOf("part_number")); String temp2 = singedUrl.Substring(singedUrl.IndexOf("upload_id"), singedUrl.Length - singedUrl.IndexOf("upload_id")); singedUrl = singedUrl.Substring(0, singedUrl.IndexOf("?") + 1) + temp2 + "&" + temp1; //singedUrl.Replace(temp1, temp2).Replace(temp2,temp1); } } logger.Info(singedUrl); if (QSConstant.PARAM_KEY_REQUEST_API_MULTIPART.Equals(requestApi)) { HttpWebRequest request = QSHttpRequestClient.getInstance() .buildStorMultiUpload( method, paramsBody, singedUrl, paramsHeaders, paramsQuery); return(request); } else { //System.Console.WriteLine(singedUrl); HttpWebRequest request = QSHttpRequestClient.getInstance() .buildStorRequest(method, paramsBody, singedUrl, paramsHeaders); return(request); } }
public QingStor(EvnContext evnContext) { this.evnContext = evnContext; this.zone = QSConstant.STOR_DEFAULT_ZONE; }
public QingStor(EvnContext evnContext, String zone) { this.evnContext = evnContext; this.zone = zone; }
static void Main(string[] args) { //EvnContextTest /*EvnContextTest evncontexttest = new EvnContextTest(); * evncontexttest.testConfig(); * evncontexttest.testDefault();*/ //Base64Test /*Base64Test test = new Base64Test(); * test.testBase();*/ //QSJSONUtilTest /*QSJSONUtilTest test = new QSJSONUtilTest(); * test.testJson();*/ //QSParamInvokeUtilTest /*QSParamInvokeUtilTest test = new QSParamInvokeUtilTest(); * test.testClassToModel(); * test.testOutputModel(); * test.testParam(); * test.testParamInvokeCapitalize();*/ //QSSignatureUtilTest /*QSSignatureUtilTest test = new QSSignatureUtilTest(); * test.testEncodeString(); * test.testExpireString(); * test.testSignature();*/ //QSStringUtilTest /*QSStringUtilTest test = new QSStringUtilTest(); * test.mapJsonStringTest(); * test.testChineseCharactersEncoding(); * test.testNotAllowedString(); * test.testReqString(); * test.testUserAgentString();*/ //BucketACLTest /*BucketACLTest test = new BucketACLTest(); * test.put_bucket_ACL();*/ //BucketTest /*BucketTest test = new BucketTest(); * test.initialize_the_bucket(); * test.put_bucket(); * test.list_objects(); * test.list_objects_status_code_is(); * test.list_objects_keys_count_is();*/ //MultiObjectTemplateUnitTest MultiObjectTemplateUnitTest test = new MultiObjectTemplateUnitTest(); test.qcstorHeadBucketObject(); test.qcstorGetObject(); //test.qcstorDeleteBucketObject(); EvnContext evn = new EvnContext("MYCDQJFYCUKPENFIIZSM", "aYlWBEbAB2bIRFKImWUyyBbA0QnnFAJms2rOhhbc");// //evn.setUri("http://php-bucket.pek3a.qingstor.com/wordpress"); evn.setProtocol("http"); evn.setHost("qingstor.com"); //evn.setHost("HTTP/1.1"); //evn.setPort("443"); string zoneName = "pek3a"; QingStor storService = new QingStor(evn, zoneName); string bucketName = "java-bucket"; Bucket bucket = storService.getBucket(bucketName); string objectName = "2.txt"; Bucket.PutObjectInput input = new Bucket.PutObjectInput(); FileStream f = new FileStream("D:\\2.txt", FileMode.Open); input.setBodyInputFile(f); input.setContentLength((int)f.Length); Bucket.PutObjectOutput output = bucket.putObject(objectName, input); f.Close(); Console.WriteLine(output.getMessage()); /*Bucket.InitiateMultipartUploadInput inputParam = new Bucket.InitiateMultipartUploadInput(); * Bucket.UploadMultipartInput input = new Bucket.UploadMultipartInput(); * //inputParam.setContentType("text/plain"); * * Bucket.InitiateMultipartUploadOutput output = bucket.initiateMultipartUpload(objectName, inputParam); * FileStream f = File.OpenRead("D:\\3.txt"); * //string text = System.IO.File.ReadAllText("D:\\1.iso"); * input.setContentLength(1024*1024*4); * input.setBodyInputFile(f); * input.setPartNumber(0); * input.setUploadID(output.getUploadID()); * Bucket.UploadMultipartOutput uploadMultipartOutput3 = bucket.uploadMultipart(objectName, input); * uploadMultipartOutput3.getMessage();*/ System.Console.Read(); }