public void PutObjectWithDeSample() { string key = "original_photo.jpg"; string srcPath = localTempPhotoFilePath; PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath); JObject o = new JObject(); // 返回原图 o["is_pic_info"] = 1; JArray rules = new JArray(); JObject rule = new JObject(); rule["bucket"] = bucket; rule["fileid"] = "desample_photo.jpg"; //处理参数,规则参见:https://cloud.tencent.com/document/product/460/19017 rule["rule"] = "imageMogr2/thumbnail/400x"; rules.Add(rule); o["rules"] = rules; string ruleString = o.ToString(Formatting.None); request.SetRequestHeader("Pic-Operations", ruleString); //执行请求 PutObjectResult result = QCloudServer.Instance().cosXml.PutObject(request); var uploadResult = result.uploadResult; // Console.WriteLine(result.GetResultInfo()); Assert.IsNotEmpty((result.GetResultInfo())); Assert.True(result.IsSuccessful()); Assert.NotNull(uploadResult); Assert.NotNull(uploadResult.originalInfo); Assert.NotNull(uploadResult.originalInfo.ETag); Assert.NotNull(uploadResult.originalInfo.Key); Assert.NotNull(uploadResult.originalInfo.Location); Assert.NotNull(uploadResult.originalInfo.imageInfo.Ave); Assert.NotNull(uploadResult.originalInfo.imageInfo.Format); Assert.NotNull(uploadResult.originalInfo.imageInfo.Orientation); Assert.NotZero(uploadResult.originalInfo.imageInfo.Width); Assert.NotZero(uploadResult.originalInfo.imageInfo.Height); Assert.NotZero(uploadResult.originalInfo.imageInfo.Quality); Assert.NotNull(uploadResult.processResults); Assert.NotZero(uploadResult.processResults.results.Count); Assert.True(uploadResult.processResults.results[0].Width <= 400); Assert.True(uploadResult.processResults.results[0].Height <= 400); Assert.NotNull(uploadResult.processResults.results[0].ETag); Assert.NotNull(uploadResult.processResults.results[0].Format); Assert.NotNull(uploadResult.processResults.results[0].Key); Assert.NotNull(uploadResult.processResults.results[0].Location); Assert.NotZero(uploadResult.processResults.results[0].Quality); Assert.NotZero(uploadResult.processResults.results[0].Size); Assert.Zero(uploadResult.processResults.results[0].WatermarkStatus); }
public async Task <bool> PutObjectAsync(string bucketName, string objectName, string filePath, CancellationToken cancellationToken = default) { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } if (string.IsNullOrEmpty(objectName)) { throw new ArgumentNullException(nameof(objectName)); } if (string.IsNullOrEmpty(filePath)) { throw new ArgumentNullException(nameof(filePath)); } if (!File.Exists(filePath)) { throw new Exception("Upload file is not exist."); } bucketName = ConvertBucketName(bucketName); PutObjectRequest request = new PutObjectRequest(bucketName, objectName, filePath); PutObjectResult result = _client.PutObject(request); return(await Task.FromResult(result.IsSuccessful())); }
public void QRCodeRecognition() { string key = qrPhotoKey; // 下载云上有内容的 QR Code string srcPath = localQRCodeTempPhotoFilePath; GetObjectRequest getRequest = new GetObjectRequest(bucket, key, ".", localQRCodeTempPhotoFilePath); GetObjectResult getResult = QCloudServer.Instance().cosXml.GetObject(getRequest); Assert.True(200 == getResult.httpCode); // 开始请求上传时 QR code 识别 PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath); JObject o = new JObject(); // 不返回原图 o["is_pic_info"] = 1; JArray rules = new JArray(); JObject rule = new JObject(); rule["bucket"] = bucket; rule["fileid"] = "qrcode.jpg"; //处理参数,规则参见:https://cloud.tencent.com/document/product/460/37513 rule["rule"] = "QRcode/cover/0"; rules.Add(rule); o["rules"] = rules; string ruleString = o.ToString(Formatting.None); request.SetRequestHeader("Pic-Operations", ruleString); //执行请求 PutObjectResult result = QCloudServer.Instance().cosXml.PutObject(request); var uploadResult = result.uploadResult; Assert.IsNotEmpty((result.GetResultInfo())); Assert.True(result.IsSuccessful()); Assert.NotNull(uploadResult); Assert.NotNull(uploadResult.originalInfo); Assert.NotNull(uploadResult.originalInfo.ETag); Assert.NotNull(uploadResult.originalInfo.Key); Assert.NotNull(uploadResult.originalInfo.Location); Assert.NotNull(uploadResult.originalInfo.imageInfo.Format); Assert.NotZero(uploadResult.originalInfo.imageInfo.Width); Assert.NotZero(uploadResult.originalInfo.imageInfo.Height); Assert.NotZero(uploadResult.originalInfo.imageInfo.Quality); Assert.NotNull(uploadResult.processResults); Assert.NotZero(uploadResult.processResults.results.Count); Assert.NotNull(uploadResult.processResults.results[0].ETag); Assert.NotNull(uploadResult.processResults.results[0].Format); Assert.NotNull(uploadResult.processResults.results[0].Key); Assert.NotNull(uploadResult.processResults.results[0].Location); Assert.NotZero(uploadResult.processResults.results[0].Quality); Assert.NotZero(uploadResult.processResults.results[0].Size); Assert.AreEqual(uploadResult.processResults.results[0].CodeStatus, 1); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo.CodeUrl); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo.CodeLocation); Assert.NotNull(uploadResult.processResults.results[0].QRcodeInfo.CodeLocation.Point); Assert.True(uploadResult.processResults.results[0].QRcodeInfo.CodeLocation.Point.Count > 0); QRCodeRecognitionRequest rRequest = new QRCodeRecognitionRequest(bucket, key, 0); QRCodeRecognitionResult rResult = QCloudServer.Instance().cosXml.QRCodeRecognition(rRequest); Assert.IsNotEmpty((rResult.GetResultInfo())); Assert.True(rResult.IsSuccessful()); Assert.NotNull(rResult.recognitionResult); Assert.NotNull(rResult.recognitionResult.QRcodeInfo); Assert.Null(rResult.recognitionResult.ResultImage); Assert.AreEqual(rResult.recognitionResult.CodeStatus, 1); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeUrl); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point); Assert.True(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point.Count > 0); // with cover rRequest = new QRCodeRecognitionRequest(bucket, key, 1); rResult = QCloudServer.Instance().cosXml.QRCodeRecognition(rRequest); Assert.IsNotEmpty((rResult.GetResultInfo())); Assert.True(rResult.IsSuccessful()); Assert.NotNull(rResult.recognitionResult); Assert.NotNull(rResult.recognitionResult.QRcodeInfo); Assert.NotNull(rResult.recognitionResult.ResultImage); Assert.AreEqual(rResult.recognitionResult.CodeStatus, 1); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeUrl); Assert.NotNull(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point); Assert.True(rResult.recognitionResult.QRcodeInfo.CodeLocation.Point.Count > 0); }