示例#1
0
        public async Task <ResponseModel> UpFile(string key, string srcPath)
        {
            try
            {
                string           bucket  = _buketName + "-" + _appid; //存储桶名称 格式:BucketName-APPID
                PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                //设置进度回调
                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
                });
                //执行请求
                PutObjectResult result = await Task.FromResult(_cosXml.PutObject(request));

                return(new ResponseModel {
                    Code = 200, Message = result.GetResultInfo()
                });
            }
            catch (CosClientException clientEx)
            {
                return(new ResponseModel {
                    Code = 0, Message = "CosClientException: " + clientEx.Message
                });
            }
            catch (CosServerException serverEx)
            {
                return(new ResponseModel {
                    Code = 0, Message = "CosServerException: " + serverEx.GetInfo()
                });
            }
        }
示例#2
0
        /// <summary>
        /// 上传文件至oss
        /// </summary>
        /// <param name="key">文件名称</param>
        /// <param name="memoryStream">文件流</param>
        /// <returns></returns>
        public async Task <string> PutObjectResultAsync(string key, MemoryStream memoryStream)
        {
            memoryStream.Seek(0, SeekOrigin.Begin);
            PutObjectResult putObjectResult = AliOssClient.GetAliOssClient.PutObject(bucketName, key, memoryStream);

            return(putObjectResult.ETag);
        }
示例#3
0
 public void SetResult(PutObjectResult result)
 {
     this.eTag            = result.eTag;
     this.httpCode        = result.httpCode;
     this.httpMessage     = result.httpMessage;
     this.responseHeaders = result.responseHeaders;
 }
示例#4
0
 /// <summary>
 /// 上传到腾讯云COS
 /// </summary>
 /// <param name="src">文件流</param>
 /// <param name="bucket">存储桶,格式:BucketName-APPID</param>
 /// <param name="key">对象键</param>
 /// <returns>是否上传成功</returns>
 public static bool SaveFileToTencentCOS(byte[] src, string bucket, string key)
 {
     try
     {
         PutObjectRequest request = new PutObjectRequest(bucket, key, src);
         //设置进度回调
         request.SetCosProgressCallback(delegate(long completed, long total)
         {
             //Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
         });
         //执行请求
         PutObjectResult result = CosXml.PutObject(request);
         //对象的 eTag
         string eTag = result.eTag;
         return(true);
     }
     catch (COSXML.CosException.CosClientException clientEx)
     {
         //请求失败
         //Console.WriteLine("CosClientException: " + clientEx);
     }
     catch (COSXML.CosException.CosServerException serverEx)
     {
         //请求失败
         //Console.WriteLine("CosServerException: " + serverEx.GetInfo());
     }
     return(false);
 }
        /// 上传时进行二维码识别
        public void UploadWithQRcodeRecognition()
        {
            string bucket  = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
            string key     = "exampleobject";            //对象键
            string srcPath = @"temp-source-file";        //本地文件绝对路径
            //.cssg-snippet-body-start:[upload-with-QRcode-recognition]
            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/<mode>";
            rules.Add(rule);
            o["rules"] = rules;

            string ruleString = o.ToString(Formatting.None);

            request.SetRequestHeader("Pic-Operations", ruleString);
            //执行请求
            PutObjectResult result = cosXml.PutObject(request);
            //.cssg-snippet-body-end
        }
        /// 上传时图片处理
        public void UploadWithPicOperation()
        {
            string bucket  = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
            string key     = "exampleobject";            //对象键
            string srcPath = @"temp-source-file";        //本地文件绝对路径
            //.cssg-snippet-body-start:[upload-with-pic-operation]
            PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);

            JObject o = new JObject();

            // 不返回原图
            o["is_pic_info"] = 0;
            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/400x400";
            rules.Add(rule);
            o["rules"] = rules;

            string ruleString = o.ToString(Formatting.None);

            request.SetRequestHeader("Pic-Operations", ruleString);
            //执行请求
            PutObjectResult result = cosXml.PutObject(request);
            //.cssg-snippet-body-end
        }
示例#7
0
        public static void PutObject(COSXML.CosXml cosXml, string bucket, string key, string srcPath)
        {
            try
            {
                PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //设置进度回调
                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("{0} progress = {1} / {2} : {3:##.##}%", DateTime.Now.ToString(), completed, total, completed * 100.0 / total));
                });

                //执行请求
                PutObjectResult result = cosXml.PutObject(request);

                Console.WriteLine(String.Format("{0}  {1}", DateTime.Now.ToString(), result.GetResultInfo()));
            }
            catch (CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
示例#8
0
        long durationSecond = 600; //secretKey 有效时长,单位为 秒

        public void UploadFile(string fileName, string localFileName)
        {
            try
            {
                string           bucket  = bucketName + "-" + appid; //存储桶,格式:BucketName-APPID
                PutObjectRequest request = new PutObjectRequest(bucket, fileName, localFileName);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //执行请求
                PutObjectResult result = cosSserver.PutObject(request);
                //请求成功
                // Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                Console.WriteLine("CosClientException: " + clientEx.Message);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
示例#9
0
        public void PutObjectWithCustomerKey()
        {
            try
            {
                string           key     = "objectWithSSEC";
                PutObjectRequest request = new PutObjectRequest(bucket, key, smallFileSrcPath);

                string customerKey = "25rN73uQtl1bUGnvHe0URgFWBNu4vBba";//32字符
                request.SetCosServerSideEncryptionWithCustomerKey(customerKey);

                //执行请求
                PutObjectResult result = cosXml.PutObject(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (CosClientException clientEx)
            {
                Console.WriteLine("CosClientException: " + clientEx.Message);
                Assert.True(false);
            }
            catch (CosServerException serverEx)
            {
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Assert.True(false);
            }
        }
示例#10
0
        public void testPutObjectUploadTrafficLimit()
        {
            try
            {
                long             now     = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
                PutObjectRequest request = new PutObjectRequest(bucket,
                                                                commonKey, smallFileSrcPath);

                request.LimitTraffic(8 * 1000 * 1024);
                //执行请求
                PutObjectResult result   = cosXml.PutObject(request);
                long            costTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds() - now;

                Console.WriteLine("costTime = " + costTime + "ms");
                Console.WriteLine(result.GetResultInfo());

                Assert.True(result.httpCode == 200);
                // Assert.True(costTime > 8000 && costTime < 14000);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                Console.WriteLine("CosClientException: " + clientEx.Message);
                Assert.True(false);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Assert.True(false);
            }
        }
示例#11
0
        public void PutObjectWithAES256()
        {
            try
            {
                string           key     = "objectWithAES256";
                PutObjectRequest request = new PutObjectRequest(bucket, key, smallFileSrcPath);

                request.SetCosServerSideEncryption();

                //执行请求
                PutObjectResult result = cosXml.PutObject(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (CosClientException clientEx)
            {
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                Assert.True(false);
            }
            catch (CosServerException serverEx)
            {
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Assert.True(false);
            }
        }
示例#12
0
        public bool Add(string bucket, string key, byte[] data)
        {
            try
            {
                PutObjectRequest request = new PutObjectRequest(bucket, key, data);

                //执行请求
                PutObjectResult result = cosXml.PutObject(request);
                //对象的 eTag
                string eTag = result.eTag;

                return(true);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                Console.WriteLine("CosClientException: " + clientEx);
                Debug.WriteLine("CosClientException: " + clientEx);
                return(false);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Debug.WriteLine("CosServerException: " + serverEx.GetInfo());
                return(false);
            }
        }
示例#13
0
        public void PutObjectWithKMS(COSXML.CosXml cosXml, string bucket, string key, string srcPath)
        {
            try
            {
                PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                request.IsHttps = true;
                //设置进度回调
                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    //Console.WriteLine(String.Format("{0} progress = {1} / {2} : {3:##.##}%", DateTime.Now.ToString(), completed, total, completed * 100.0 / total));
                });

                request.SetCosServerSideEncryptionWithKMS(null, null);

                //执行请求
                PutObjectResult result = cosXml.PutObject(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (CosClientException clientEx)
            {
                Console.WriteLine("CosClientException: " + clientEx.Message);
                //Assert.True(false);
            }
            catch (CosServerException serverEx)
            {
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                //Assert.True(true);
            }
        }
示例#14
0
        private static bool putObject()
        {
            try
            {
                Console.WriteLine("--- Upload a File ---");

                FileInfo         file             = new FileInfo("H:/haixt111/[email protected]");//  d:/test1.doc
                PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objKeyNameFileData, file);

                //CannedAccessControlList cannedAcl = new CannedAccessControlList(CannedAccessControlList.PRIVATE);
                //putObjectRequest.setCannedAcl(cannedAcl);

                SampleListener sampleListener = new SampleListener(file.Length);
                putObjectRequest.setProgressListener(sampleListener);
                PutObjectResult putObjectResult = ks3Client.putObject(putObjectRequest);

                Console.WriteLine("Upload Completed. eTag=" + putObjectResult.getETag() + ", MD5=" + putObjectResult.getContentMD5());
                Console.WriteLine("---------------------\n");
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e.ToString());
                return(false);
            }

            return(true);
        }
示例#15
0
        public Task PutAsync(string remotename, Stream stream, CancellationToken cancelToken)
        {
            try
            {
                cosXml = GetCosXml();
                string bucket = _cosOptions.Bucket;
                string key    = GetFullKey(remotename);

                byte[] buffer = new byte[stream.Length];
                if (Utility.Utility.ForceStreamRead(stream, buffer, buffer.Length) != stream.Length)
                {
                    throw new Exception("Bad file read");
                }

                PutObjectRequest request = new PutObjectRequest(bucket, key, buffer);

                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), KEY_DURATION_SECOND);
                request.SetRequestHeader("Content-Type", "application/octet-stream");

                PutObjectResult result = cosXml.PutObject(request);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                Logging.Log.WriteErrorMessage(LOGTAG, "PutAsync", clientEx, "Put failed: {0}", remotename);
                throw;
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                Logging.Log.WriteErrorMessage(LOGTAG, "PutAsync", serverEx, "Put failed: {0}, {1}", remotename, serverEx.GetInfo());
                throw;
            }

            return(Task.CompletedTask);
        }
示例#16
0
        /// 上传时添加盲水印
        public void PutObjectWithWatermark()
        {
            string bucket  = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
            string key     = "exampleobject";            //对象键
            string srcPath = @"temp-source-file";        //本地文件绝对路径
            //.cssg-snippet-body-start:[put-object-with-watermark]
            PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);

            JObject o = new JObject();

            // 不返回原图
            o["is_pic_info"] = 0;
            JArray  rules = new JArray();
            JObject rule  = new JObject();

            rule["bucket"] = bucket;
            rule["fileid"] = key;
            //处理参数,规则参见:https://cloud.tencent.com/document/product/460/19017
            rule["rule"] = "watermark/3/type/<type>/image/<imageUrl>/text/<text>/level/<level>";
            rules.Add(rule);
            o["rules"] = rules;

            string ruleString = o.ToString(Formatting.None);

            request.SetRequestHeader("Pic-Operations", ruleString);
            //执行请求
            PutObjectResult result = cosXml.PutObject(request);
            //.cssg-snippet-body-end
        }
示例#17
0
        /// 简单上传对象
        public void PutObject()
        {
            //.cssg-snippet-body-start:[put-object]
            try
            {
                string bucket  = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
                string key     = "exampleobject";            //对象键
                string srcPath = @"temp-source-file";        //本地文件绝对路径

                PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
                //设置进度回调
                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
                });
                //执行请求
                PutObjectResult result = cosXml.PutObject(request);
                //对象的 eTag
                string eTag = result.eTag;
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                Console.WriteLine("CosClientException: " + clientEx);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }

            //.cssg-snippet-body-end
        }
        /// <summary>
        /// 创建文件夹
        /// </summary>
        /// <param name="key"></param>
        public void CreateEmptyFolder(string key)
        {
            const string accessId   = "X9foTnzzxHCk6gK7";
            const string accessKey  = "ArQYcpKLbaGweM8p1LQDq5kG1VIMuz";
            const string endpoint   = "http://oss-cn-shenzhen.aliyuncs.com";
            const string bucketName = "best-bms";
            var          client     = new OssClient(endpoint, accessId, accessKey);

            try
            {
                using (MemoryStream memStream = new MemoryStream())
                {
                    PutObjectResult ret = client.PutObject(bucketName, key, memStream);
                }
            }
            catch (OssException ex)
            {
                if (ex.ErrorCode == OssErrorCode.BucketAlreadyExists)
                {
                    Console.WriteLine("Bucket '{0}' already exists, please modify and recreate it.", bucketName);
                }
                else
                {
                    Console.WriteLine("CreateBucket Failed with error info: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                                      ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
                }
            }
        }
示例#19
0
 public int Upload(string src, string key)
 {
     try
     {
         string bucket = _bucket;        // "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID
                                         // string key = "exampleobject"; //对象在存储桶中的位置,即称对象键.
         string           srcPath = src; // @"F:\exampleobject";//本地文件绝对路径
         PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
         //设置签名有效时长
         request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
         //设置进度回调
         request.SetCosProgressCallback(delegate(long completed, long total)
         {
             Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
         });
         //执行请求
         PutObjectResult result = cosXml.PutObject(request);
         //请求成功
         string r = result.GetResultInfo();
         Console.WriteLine(r);
         return(0);
     }
     catch (COSXML.CosException.CosClientException clientEx)
     {
         //请求失败
         Console.WriteLine("CosClientException: " + clientEx.Message);
     }
     catch (COSXML.CosException.CosServerException serverEx)
     {
         //请求失败
         Console.WriteLine("CosServerException: " + serverEx.GetInfo());
     }
     return(1);
 }
示例#20
0
        public void PutObject()
        {
            init();

            string bucket    = "000000-1253653367";
            string objectKey = "文件夹/exampleobject";

            try
            {
                PutObjectRequest request = new PutObjectRequest(bucket, objectKey, smallFileSrcPath);

                //执行请求
                PutObjectResult result = cosXml.PutObject(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (CosClientException clientEx)
            {
                Console.WriteLine("CosClientException: " + clientEx.Message);
                Assert.True(false);
            }
            catch (CosServerException serverEx)
            {
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                Assert.True(false);
            }
        }
        public string StoreImage(string file_name, byte[] image_data, string dir_name,
                                 string content_type)
        {
            string key = string.Empty;

            try
            {
                var ossClient = new OssClient(config_oss_endpoint, config_oss_access_id, config_oss_access_key);
                var meta      = new ObjectMetadata();
                meta.ContentType = content_type;
                key = string.Format("{0}/{1}", dir_name, file_name);

                PutObjectResult result = ossClient.PutObject(config_oss_bucket, key, new MemoryStream(image_data), meta);
                //上传图片
                //Logger.Info("保存图片{0}到OSS", file_name);
            }
            catch (Exception ex)
            {
                //Logger.Exception(ex, "保存图片{0}到OSS失败,将保存到暂存区{1}", file_name, config_oss_temp_path+dir_name);

                try
                {
                    FileOperationHelper.Save(image_data, config_oss_temp_path, file_name);
                }
                catch (Exception)
                {
                    //Logger.Exception(ex, "保存图片{0}到暂存区失败", file_name);
                }
            }

            return(string.Format("http://{0}.oss-cn-hangzhou.aliyuncs.com/{1}", config_oss_bucket, key));
        }
示例#22
0
        /// <summary>
        /// 上传指定文件到对象存储的CoursesExport目录中
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="path">本地文件的绝对路径</param>
        /// <returns>下载地址</returns>
        public static String UploadFile(string fileName, string path)
        {
            CosXmlConfig config = new CosXmlConfig.Builder()
                                  .SetConnectionTimeoutMs(60000) //设置连接超时时间,单位毫秒,默认45000ms
                                  .SetReadWriteTimeoutMs(40000)  //设置读写超时时间,单位毫秒,默认45000ms
                                  .IsHttps(true)                 //设置默认 HTTPS 请求
                                  .SetAppid("***REMOVED***")     //设置腾讯云账户的账户标识 APPID
                                  .SetRegion("***REMOVED***")    //设置一个默认的存储桶地域
                                  .Build();

            string AppDirectory   = CQ.Api.AppDirectory;
            string secretId       = ini.Read(AppDirectory + @"\CosSecret.ini", "CosSecret", "SecretId", "");  //云 API 密钥 SecretId
            string secretKey      = ini.Read(AppDirectory + @"\CosSecret.ini", "CosSecret", "SecretKey", ""); //云 API 密钥 SecretKey
            long   durationSecond = 600;                                                                      //每次请求签名有效时长,单位为秒
            QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId,
                                                                                                    secretKey, durationSecond);

            CosXml cosXml = new CosXmlServer(config, qCloudCredentialProvider);

            try
            {
                string bucket  = "chajian-***REMOVED***";    //存储桶,格式:BucketName-APPID
                string key     = "***REMOVED***" + fileName; //对象在存储桶中的位置,即称对象键
                string srcPath = path;                       //本地文件绝对路径
                if (!File.Exists(srcPath))
                {
                    // 如果不存在目标文件,创建一个临时的测试文件
                    File.WriteAllBytes(srcPath, new byte[1024]);
                }

                PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                //设置进度回调
                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
                });
                //执行请求
                PutObjectResult result = cosXml.PutObject(request);
                //对象的 eTag
                string eTag = result.eTag;

                return("***REMOVED***CoursesExport/" + fileName);
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                //请求失败
                CQ.Log.Warning("CosClientException: ", clientEx);
                return("");
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                CQ.Log.Warning("CosServerException: ", serverEx.GetInfo());
                return("");
            }
        }
示例#23
0
        public void CreateEmptyFolder(string bucketName, string folderName)
        {
            var key = folderName.TrimStart('/').TrimEnd('/') + '/';

            using (MemoryStream memStream = new MemoryStream())
            {
                PutObjectResult ret = Client.PutObject(bucketName, key, memStream);
            }
        }
示例#24
0
        public async Task <JsonResult> Put(string key)
        {
            List <PutObjectResult> lst = new List <PutObjectResult>();

            foreach (var file in Request.Form.Files)
            {
                // Copy the request body into a seekable stream required by the AWS SDK for .NET.
                var seekableStream = new MemoryStream();
                file.CopyTo(seekableStream);
                seekableStream.Seek(0, SeekOrigin.Begin);


                var putRequest = new PutObjectRequest
                {
                    BucketName  = this.BucketName,
                    ContentType = file.ContentType,
                    Key         = key,
                    InputStream = seekableStream
                };

                try
                {
                    var response = await this.S3Client.PutObjectAsync(putRequest);

                    Logger.LogInformation($"Uploaded object {key} to bucket {this.BucketName}. Request Id: {response.ResponseMetadata.RequestId}");

                    PutObjectResult result = new PutObjectResult {
                        ETag = response.ETag, Key = key
                    };

                    string[] filters = new string[] { "sepia", "lomo", "koda", "polaroid", "blur", "vignette", "glow", "oilpaint" };

                    foreach (var filter in filters)
                    {
                        result.FilterUrls.Add(Url.Action("Get", "Filter", new { key = key, filtertype = filter, maxwidth = 500 }, Request.Scheme));
                    }

                    lst.Add(result);
                }
                catch (Exception e)
                {
                    this.Response.StatusCode  = 500;
                    this.Response.ContentType = "text/json";
                    return(new JsonResult(new { Error = e.Message }, new JsonSerializerSettings {
                        Formatting = Formatting.Indented
                    }));
                }
            }


            // Probably want to return more information here so the front-end knows what to do next
            this.Response.ContentType = "text/json";

            return(new JsonResult(lst, new JsonSerializerSettings {
                Formatting = Formatting.Indented
            }));
        }
示例#25
0
        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);
        }
示例#26
0
        private static string GetCallbackResponse(PutObjectResult putObjectResult)
        {
            string callbackResponse = null;

            using (var stream = putObjectResult.ResponseStream) {
                var buffer    = new byte[4 * 1024];
                var bytesRead = stream.Read(buffer, 0, buffer.Length);
                callbackResponse = Encoding.Default.GetString(buffer, 0, bytesRead);
            }
            return(callbackResponse);
        }
        public async Task <IActionResult> Get()
        {
            var retryPolicy = Policy.Handle <COSXML.CosException.CosServerException>()
                              .WaitAndRetry(new List <TimeSpan>()
            {
                TimeSpan.FromSeconds(1),
                TimeSpan.FromSeconds(3),
                TimeSpan.FromSeconds(5),
            }, (ex, dt) =>
            {
                Console.WriteLine($"{DateTime.Now} {ex.Message}  {dt} ");
            });
            LongTermJobObjectModel longTermJobObjectModel = new LongTermJobObjectModel()
            {
                Id     = 12,
                Name   = "xzlxzl",
                Age    = 20,
                Remark = "测试一下"
            };


            var jsonContent = JsonConvert.SerializeObject(longTermJobObjectModel, _serializerSetting);

            try
            {
                //string bucket = "job-dev"; //存储桶,格式:BucketName-APPID
                string key = $"/test/{longTermJobObjectModel.Id}.json"; //对象在存储桶中的位置,即称对象键.
                //string srcPath =           @"G:\c03fd54abe6e19a631bc59.jpg";//本地文件绝对路径
                PutObjectRequest request = new PutObjectRequest(_cosXmlOptions.Bucket, key, Encoding.Default.GetBytes(jsonContent));
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 60 * 60 * 5);
                //执行请求
                retryPolicy.Execute(() =>
                {
                    PutObjectResult result = _cosXmlServer.PutObject(request);
                });
                return(Ok());
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                //请求失败
                Console.WriteLine(serverEx);
                return(Ok(serverEx));
            }
            //var rng = new Random();
            //return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            //{
            //    Date = DateTime.Now.AddDays(index),
            //    TemperatureC = rng.Next(-20, 55),
            //    Summary = Summaries[rng.Next(Summaries.Length)]
            //})
            //.ToArray();
        }
示例#28
0
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="fileName">文件名:/images/demo.jpg</param>
        /// <param name="fileStream"></param>
        public void Upload(string fileName, Stream fileStream)
        {
            OssClient      ossClient = new OssClient(EndPoint, AccessKeyID, AccessKeySecret);
            ObjectMetadata metadata  = new ObjectMetadata();

            //根据文件名设置ContentType
            metadata.ContentType = GetContentType(fileName);
            string key = "MerLogo/" + fileName;

            fileStream.Seek(0, SeekOrigin.Begin);
            PutObjectResult result = ossClient.PutObject(BucketName, key, fileStream, metadata);
        }
示例#29
0
 public void UpLoadFile(string strEndPoint, string strAccessID, string strAccessKey, string strBucketName, string strFullName, Stream stream, ObjectMetadata meta)
 {
     try
     {
         OssClient       ossClient = new OssClient(strEndPoint, strAccessID, strAccessKey);
         PutObjectResult result    = ossClient.PutObject(strBucketName, strFullName, stream, meta);//上传图片
     }
     catch
     {
         throw;
     }
 }
示例#30
0
 private void SimpleUpload()
 {
     putObjectRequest = new PutObjectRequest(bucket, key, srcPath, sendOffset, sendContentLength);
     if (customHeaders != null)
     {
         putObjectRequest.SetRequestHeaders(customHeaders);
     }
     if (progressCallback != null)
     {
         putObjectRequest.SetCosProgressCallback(progressCallback);
     }
     cosXmlServer.PutObject(putObjectRequest, delegate(CosResult cosResult)
     {
         lock (syncExit)
         {
             if (isExit)
             {
                 if (taskState == TaskState.CANCEL)
                 {
                     DeleteObject();
                 }
                 return;
             }
         }
         if (UpdateTaskState(TaskState.COMPLETED))
         {
             PutObjectResult result          = cosResult as PutObjectResult;
             UploadTaskResult copyTaskResult = new UploadTaskResult();
             copyTaskResult.SetResult(result);
             if (successCallback != null)
             {
                 successCallback(copyTaskResult);
             }
         }
     },
                            delegate(CosClientException clientEx, CosServerException serverEx)
     {
         lock (syncExit)
         {
             if (isExit)
             {
                 return;
             }
         }
         if (UpdateTaskState(TaskState.FAILED))
         {
             if (failCallback != null)
             {
                 failCallback(clientEx, serverEx);
             }
         }
     });
 }