Exemple #1
0
        /// <summary>
        /// 创建bucket
        /// </summary>
        /// <param name="bucketName">bucket名</param>
        /// <param name="aclType">开放类型</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <returns></returns>
        public static bool SetBucketAcl(string bucketName, string aclType)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw new Exception("Bucket还没有建立");
            }

            //设置读写
            switch (aclType)
            {
            case "1":
                client.SetBucketAcl(bucketName, CannedAccessControlList.PublicRead);
                break;

            case "2":
                client.SetBucketAcl(bucketName, CannedAccessControlList.Private);
                break;

            default:
                client.SetBucketAcl(bucketName, CannedAccessControlList.PublicReadWrite);
                break;
            }
            return(true);
        }
Exemple #2
0
 public async Task SaveBlobStreamAsync(string containerName, string blobName, Stream source, BlobProperties properties = null)
 {
     try
     {
         await Task.Run(() =>
         {
             var exist = _ossClient.DoesBucketExist(containerName);
             if (!exist)
             {
                 _ossClient.CreateBucket(containerName);
             }
             var md5        = OssUtils.ComputeContentMd5(source, source.Length);
             var objectMeta = new ObjectMetadata();
             objectMeta.AddHeader("Content-MD5", md5);
             objectMeta.UserMetadata.Add("Content-MD5", md5);
             if (properties != null)
             {
                 objectMeta.ContentType = properties.ContentType;
             }
             _ossClient.PutObject(containerName, blobName, source, objectMeta);
         });
     }
     catch (Exception ex)
     {
         if (ex.IsOssStorageException())
         {
             throw ex.Convert();
         }
         throw;
     }
 }
Exemple #3
0
        /// <summary>
        /// 创建bucket
        /// </summary>
        /// <param name="bucketName">bucket名</param>
        /// <param name="referers">白名单字符串数组Json</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <returns></returns>
        public static bool SetBucketReferer(string bucketName, string referers)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw new Exception("Bucket还没有建立");
            }

            //设置白名单
            if (string.IsNullOrWhiteSpace(referers))
            {
                var request = new SetBucketRefererRequest(bucketName);
                client.SetBucketReferer(request);
            }
            else
            {
                List <string> refererList = JSONHelper.JsonToModel <List <string> >(referers);//jSON 反序列化
                var           request     = new SetBucketRefererRequest(bucketName, refererList);
                client.SetBucketReferer(request);
            }
            return(true);
        }
Exemple #4
0
 public Task <bool> BucketExistsAsync(string bucketName)
 {
     if (string.IsNullOrEmpty(bucketName))
     {
         throw new ArgumentNullException(nameof(bucketName));
     }
     return(Task.FromResult(_client.DoesBucketExist(bucketName)));
 }
Exemple #5
0
        public static OssSign BuildSign(string bucketName, string dir, string userId, string fileType, int?maxLength, int hours = 2)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw new Exception("Bucket还没有建立");
            }

            //如果文件夹未设置则设置为临时文件夹
            if (string.IsNullOrWhiteSpace(dir))
            {
                dir = "Temp";
            }

            string ossDomain = ConfigHelper.GetConfigString("Oss_Domain");
            string ossPoint  = ConfigHelper.GetConfigString("Oss_Point");
            string accessId  = ConfigHelper.GetConfigString("Oss_AccessId");
            string accessKey = ConfigHelper.GetConfigString("Oss_AccessKey");

            OssSign ossSign = new OssSign();

            ossSign.OssDomain      = ossDomain;
            ossSign.OSSAccessKeyId = accessId;
            ossSign.bucketUrl      = ossPoint.Replace("oss-", bucketName + ".oss-");
            string keyPath = dir + "/" + userId + "/" + fileType + "/" + DateTime.Now.ToString("yyyyMMdd") + "/";

            ossSign.key  = keyPath + "${filename}";
            ossSign.guid = Guid.NewGuid().ToString("N").ToUpper();
            policy policyModel = new policy();

            policyModel.expiration = DateTime.Now.AddHours(hours).ToString("yyyy-MM-ddTHH:mm:00.000Z");
            policyModel.conditions = new List <object>();
            policyModel.conditions.Add(new
            {
                bucket = bucketName
            });
            policyModel.conditions.Add(new string[] { "starts-with", "$key", keyPath });
            if (maxLength.HasValue)
            {
                List <object> range = new List <object>();
                range.Add("content-length-range");
                range.Add(1);
                range.Add(maxLength);
                policyModel.conditions.Add(range);
            }
            string jsonPolicy = JSONHelper.ObjectToJson(policyModel);

            ossSign.policy    = Base64Change.EncodeBase64ByUTF8(jsonPolicy);
            ossSign.Signature = SHA1.Hmac_sha1(accessKey, ossSign.policy);
            return(ossSign);
        }
 private bool DoesBucketExist(string bucketName)
 {
     try {
         return(_client.DoesBucketExist(bucketName));
     } catch (Exception ex) when(IsNotFoundException(ex))
     {
         return(false);
     }
 }
Exemple #7
0
 public Task Init()
 {
     Client = new OssClient(EndPoint, AccessKeyId, AccessKeySecret);
     if (!Client.DoesBucketExist(DefaultBucket))
     {
         Client.CreateBucket(DefaultBucket);
     }
     return(Task.CompletedTask);
 }
        public override void OnApplicationShutdown(ApplicationShutdownContext context)
        {
            var ossClient = new OssClient(_endPoint, _accessKeyId, _accessKeySecret);

            if (ossClient.DoesBucketExist(_bucketName))
            {
                ossClient.DeleteBucket(_bucketName);
            }
        }
Exemple #9
0
        /// <summary>
        /// 检查bucket是否存在
        /// </summary>
        /// <param name="bucketName">bucket名</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <returns></returns>
        public static bool CheckBucket(string bucketName)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            return(client.DoesBucketExist(bucketName));
        }
Exemple #10
0
        /// <summary>
        /// 上传文件到Oss
        /// </summary>
        /// <param name="bucketName">bucket名</param>
        /// <param name="dir">文件夹</param>
        /// <param name="userId">用户ID</param>
        /// <param name="fileType">文件类型</param>
        /// <param name="file">文件</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <param name="newFileName">是否新文件名 默认生成新文件名</param>
        /// <returns></returns>
        public static string UploadFile(string bucketName, string dir, string userId, string fileType, HttpPostedFile file, bool newFileName = true)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }
            if (string.IsNullOrWhiteSpace(userId))
            {
                throw new Exception("userId为空");
            }
            if (string.IsNullOrWhiteSpace(fileType))
            {
                throw new Exception("fileType为空");
            }

            if (file == null || string.IsNullOrWhiteSpace(file.FileName))
            {
                throw  new Exception("请选择文件");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw  new Exception("Bucket还没有建立");
            }

            string fileName = file.FileName;

            string fileExtension = Path.GetExtension(fileName).ToLower();

            //文件保存Key生成
            string Key = dir + "/" + userId + "/" + fileType + "/" + DateTime.Now.ToString("yyyyMMdd") + "/" + Guid.NewGuid().ToString("N").ToUpper() + fileExtension;

            if (!newFileName)//保留原文件名
            {
                Key = dir + "/" + userId + "/" + fileType + "/" + DateTime.Now.ToString("yyyyMMdd") + "/" + fileName;
            }
            //设置缓存
            ObjectMetadata Metadata = new ObjectMetadata();

            //Metadata.CacheControl = "Private";
            Metadata.CacheControl = string.Format("max-age={0}", 157680000);
            //Metadata.AddHeader("Expires", DateTime.MaxValue.GetDateTimeFormats('r')[0]);
            //Metadata.AddHeader("Expires", 2628000);
            Metadata.AddHeader("Content-Type", FileContentTypeHelper.GetMimeType(fileExtension));

            //上传文件到Oss
            PutObjectResult putResult = client.PutObject(bucketName, Key, file.InputStream, Metadata);

            return(GetDomain() + "/" + Key);
        }
Exemple #11
0
        public static bool CreateBucket(OssClient client, string bucketName)
        {
            TkDebug.AssertArgumentNull(client, "client", null);
            TkDebug.AssertArgumentNullOrEmpty(bucketName, "bucketName", null);

            bucketName = bucketName.ToLower(ObjectUtil.SysCulture);
            if (!client.DoesBucketExist(bucketName))
            {
                client.CreateBucket(bucketName);
                return(true);
            }
            return(false);
        }
Exemple #12
0
        /// <summary>
        /// 上传文件到Oss
        /// </summary>
        /// <param name="bucketName">bucket名</param>
        /// <param name="dir">文件夹</param>
        /// <param name="userId">用户ID</param>
        /// <param name="fileType">文件类型</param>
        /// <param name="base64Str">文件Base64字符串</param>
        /// <param name="fileExt">文件后缀</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <returns></returns>
        public static string UploadFileFromBase64(string bucketName, string dir, string userId, string fileType, string base64Str, string fileExt)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }
            if (string.IsNullOrWhiteSpace(userId))
            {
                throw new Exception("userId为空");
            }
            if (string.IsNullOrWhiteSpace(fileType))
            {
                throw new Exception("fileType为空");
            }

            if (string.IsNullOrWhiteSpace(base64Str))
            {
                throw new Exception("请选择文件");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw new Exception("Bucket还没有建立");
            }

            byte[] imageBytes = Convert.FromBase64String(base64Str);
            //读入MemoryStream对象
            Stream stream = new MemoryStream(imageBytes);

            string fileExtension = fileExt.ToLower();

            //文件保存Key生成
            string Key = dir + "/" + userId + "/" + fileType + "/" + DateTime.Now.ToString("yyyyMMdd") + "/" + Guid.NewGuid().ToString("N").ToUpper() + fileExtension;

            //设置缓存
            ObjectMetadata Metadata = new ObjectMetadata();

            //Metadata.CacheControl = "Private";
            Metadata.CacheControl = string.Format("max-age={0}", 157680000);
            //Metadata.AddHeader("Expires", DateTime.MaxValue.GetDateTimeFormats('r')[0]);
            //Metadata.AddHeader("Expires", 2628000);
            Metadata.AddHeader("Content-Type", FileContentTypeHelper.GetMimeType(fileExtension));

            //上传文件到Oss
            client.PutObject(bucketName, Key, stream, Metadata);

            return(GetDomain() + "/" + Key);
        }
Exemple #13
0
        /// <summary>
        /// 上传文件到Oss
        /// </summary>
        /// <param name="bucketName">bucket名</param>
        /// <param name="Key">文件夹</param>
        /// <param name="FileByte">文件字节数组</param>
        /// <param name="fileExt">文件后缀</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <returns></returns>
        public static string UploadFileFromByte(string bucketName, string Key, byte[] FileByte, string fileExt,
                                                bool isExpires = true, bool isGzip = false)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }

            if (FileByte.Length == 0)
            {
                throw new Exception("请选择文件");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw new Exception("Bucket还没有建立");
            }

            //读入MemoryStream对象
            string fileExtension = fileExt.ToLower();

            //读入MemoryStream对象
            Stream stream = new MemoryStream(FileByte);

            //设置缓存
            ObjectMetadata Metadata = new ObjectMetadata();

            //Metadata.CacheControl = "Private";
            if (isExpires)
            {
                Metadata.CacheControl = string.Format("max-age={0}", 157680000);
            }
            else
            {
                Metadata.CacheControl = "Private";
            }
            //if (isExpires) Metadata.AddHeader("Expires", DateTime.MaxValue.GetDateTimeFormats('r')[0]);
            //if (isExpires) Metadata.AddHeader("Expires", 2628000);
            Metadata.AddHeader("Content-Type", FileContentTypeHelper.GetMimeType(fileExtension));
            if (isGzip)
            {
                Metadata.AddHeader("Content-Encoding", "gzip");
            }
            //上传文件到Oss
            client.PutObject(bucketName, Key, stream, Metadata);

            return(GetDomain() + "/" + Key);
        }
Exemple #14
0
        /// <summary>
        /// 判断存储空间是否存在
        /// </summary>
        /// <param name="bucketName">存储空间的名称</param>
        public static bool DoesBucketExist(string bucketName)
        {
            bool exist = false;

            try
            {
                exist = ossClient.DoesBucketExist(bucketName);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Check object Exist failed. {0}", ex.Message);
            }
            return(exist);
        }
        public void CreateAndDeleteBucketDefaultRegionTest()
        {
            var settings = AccountSettings.Load();
            //point to default region
            var ossClient = new OssClient(settings.OssEndpoint, settings.OssAccessKeyId, settings.OssAccessKeySecret);

            //get a random bucketName
            var bucketName = OssTestUtils.GetBucketName(_className);

            //assert bucket does not exist
            Assert.IsFalse(OssTestUtils.BucketExists(ossClient, bucketName),
                string.Format("Bucket {0} should not exist before creation", bucketName));

            //create a new bucket
            ossClient.CreateBucket(bucketName);
            Assert.IsTrue(ossClient.DoesBucketExist(bucketName),
                string.Format("Bucket {0} should exist after creation", bucketName));

            //delete the bucket
            ossClient.DeleteBucket(bucketName);
            Assert.IsFalse(ossClient.DoesBucketExist(bucketName),
                string.Format("Bucket {0} should not exist after deletion", bucketName));
        }
        public void CreateAndDeleteBucketDefaultRegionTest()
        {
            var settings = AccountSettings.Load();
            //point to default region
            var ossClient = new OssClient(settings.OssEndpoint, settings.OssAccessKeyId, settings.OssAccessKeySecret);

            //get a random bucketName
            var bucketName = OssTestUtils.GetBucketName(_className);

            //assert bucket does not exist
            Assert.IsFalse(OssTestUtils.BucketExists(ossClient, bucketName),
                           string.Format("Bucket {0} should not exist before creation", bucketName));

            //create a new bucket
            ossClient.CreateBucket(bucketName);
            Assert.IsTrue(ossClient.DoesBucketExist(bucketName),
                          string.Format("Bucket {0} should exist after creation", bucketName));

            //delete the bucket
            ossClient.DeleteBucket(bucketName);
            Assert.IsFalse(ossClient.DoesBucketExist(bucketName),
                           string.Format("Bucket {0} should not exist after deletion", bucketName));
        }
Exemple #17
0
        /// <summary>
        /// 判断存储空间是否存在
        /// </summary>
        /// <param name="bucketName">存储空间的名称</param>
        public static bool DoesBucketExist(string bucketName)
        {
            var client = new OssClient(Tools.AliYunTools._ossEndpointURL, OSSACCESSKEYID, ACCESSKEYSECRET);

            try
            {
                var exist = client.DoesBucketExist(bucketName);
                return(exist);
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("Check object Exist failed. {0}", ex.Message));
                return(false);
            }
        }
        /// <summary>
        /// Is Bucket Exist
        /// </summary>
        public bool IsBucketExist()
        {
            bool result = false;

            try
            {
                result = client.DoesBucketExist(bucketName);
            }
            catch (OssException ex)
            {
                lastError = ex;
            }

            return(result);
        }
        //判断存储空间是否存在(相当于判断相片是否存在,可用于客户查询)
        public void IfAlbumExit()
        {
            var client = new OssClient(endpoint, accessKeyId, accessKeySecret);

            try
            {
                var exist = client.DoesBucketExist("igets");
                Console.WriteLine("查询是否存在");
                Console.WriteLine("存在 ? {0}", exist);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemple #20
0
        /// <summary>
        /// 上传文件到Oss 文件名不变
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="bucketName">bucket名</param>
        /// <param name="dir">文件夹</param>
        /// <param name="userId">用户ID</param>
        /// <param name="fileType">文件类型</param>
        /// <param name="FileStream">文件流</param>
        /// <param name="fileExt">文件后缀</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <returns></returns>
        public static string UploadFileFromStream(string fileName, string bucketName, string dir, string userId, string fileType, Stream FileStream)
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }
            if (string.IsNullOrWhiteSpace(userId))
            {
                throw new Exception("userId为空");
            }
            if (string.IsNullOrWhiteSpace(fileType))
            {
                throw new Exception("fileType为空");
            }

            if (FileStream.Length == 0)
            {
                throw new Exception("请选择文件");
            }

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw new Exception("Bucket还没有建立");
            }

            //读入MemoryStream对象
            string fileExtension = Path.GetExtension(fileName);

            //文件保存Key生成
            string key = dir + "/" + userId + "/" + fileType + "/" + DateTime.Now.ToString("yyyyMMdd") + "/" + fileName;

            //设置缓存
            ObjectMetadata Metadata = new ObjectMetadata();

            //Metadata.CacheControl = "Private";
            Metadata.CacheControl = string.Format("max-age={0}", 157680000);
            //Metadata.AddHeader("Expires", DateTime.MaxValue.GetDateTimeFormats('r')[0]);
            //Metadata.AddHeader("Expires", 2628000);
            Metadata.AddHeader("Content-Type", FileContentTypeHelper.GetMimeType(fileExtension));

            //上传文件到Oss
            client.PutObject(bucketName, key, FileStream, Metadata);

            return(GetDomain() + "/" + key);
        }
Exemple #21
0
 public static void DoesBucketExist(string bucketName)
 {
     try
     {
         var exist = client.DoesBucketExist(bucketName);
         Console.WriteLine("exist ? " + exist);
     }
     catch (OssException ex)
     {
         Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                           ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
     }
     catch (Exception ex)
     {
         Console.WriteLine("Failed with error info: {0}", ex.Message);
     }
 }
Exemple #22
0
        /// <summary>
        /// 将文件上传存储空间的方法(本SDK是用阿里云OSS作为存储空间)。
        /// 用户可以根据自身的情况重写该方法,重写时须注意该方法必须传入文件二进制流(byte[])和文件名
        /// </summary>
        /// <param name="fontfile">文件二进制流</param>
        /// <param name="objectName">文件名</param>
        /// <returns></returns>
        private string UploadOss(byte[] fontfile, string objectName)
        {
            string endpoint        = _ossConfig.Endpoint;
            string accessKeyId     = _ossConfig.AccessKeyId;
            string accessKeySecret = _ossConfig.AccessKeySecret;
            string bucketName      = _ossConfig.BucketName;

            // 创建OSSClient实例
            OssClient ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);

            try
            {
                var exists = ossClient.DoesBucketExist(bucketName);
                if (exists)
                {
                    ossClient.SetBucketAcl(bucketName, CannedAccessControlList.PublicRead);
                    ossClient.PutObject(bucketName, objectName, new MemoryStream(fontfile));
                    var expiration     = DateTime.Now.AddDays(150);
                    var fontfileUrl    = ossClient.GeneratePresignedUri(bucketName, objectName, expiration);
                    var fontfileString = fontfileUrl.ToString().Substring(0, fontfileUrl.ToString().IndexOf("?"));
                    Console.WriteLine("fontfileString: " + fontfileString);

                    return(fontfileString);
                }
                else
                {
                    throw new OssException("bucket [" + bucketName + "] is not exist!");
                }
            }
            catch (OssException oe)
            {
                Console.WriteLine("Caught an OSSException, which means your request made it to OSS, but was rejected with an error response for some reason.");
                Console.WriteLine("Error Message: " + oe.Message);
                Console.WriteLine("Error Code: " + oe.ErrorCode);
                Console.WriteLine("Request ID: " + oe.RequestId);
                Console.WriteLine("Host ID: " + oe.HostId);
                throw oe;
            }
            catch (ClientException ce)
            {
                Console.WriteLine("Caught an ClientException, which means the client encountered a serious internal problem while trying to communicate with OSS, " +
                                  "such as not being able to access the network.");
                Console.WriteLine(ce.StackTrace);
                throw ce;
            }
        }
 public bool DoesBucketExist(string bucketName, ref string msg)
 {
     try
     {
         var exist = _ossClient.DoesBucketExist(bucketName);
         return(exist);
     }
     catch (OssException ex)
     {
         msg = ex.Message;
         _logger.LogError("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                          ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
     }
     catch (Exception ex)
     {
         msg = ex.Message;
         _logger.LogError("Failed with error info: {0}", ex.Message);
     }
     return(false);
 }
        public void DoesBucketExistTestWithException()
        {
            try
            {
                _ossClient.DoesBucketExist("");
                Assert.IsTrue(false);
            }
            catch (Exception e)
            {
                Assert.True(true, e.Message);
            }

            try
            {
                _ossClient.DoesBucketExist("Invalid-Bucket");
                Assert.IsTrue(false);
            }
            catch (Exception e)
            {
                Assert.True(true, e.Message);
            }

            var bucketName1 = OssTestUtils.GetBucketName(_className);

            try
            {
                var client = new OssClient(Config.Endpoint, Config.AccessKeyId, "invalid-sk");
                _ossClient.CreateBucket(bucketName1, StorageClass.IA);
                client.DoesBucketExist(bucketName1);
                Assert.IsTrue(false);
            }
            catch (Exception e)
            {
                Assert.True(true, e.Message);
            }
            finally
            {
                _ossClient.DeleteBucket(bucketName1);
            }
        }
Exemple #25
0
 private static OssClient CreateOssClientOfIOS()
 {
     if (_ossClient == null)
     {
         string accessKeyId     = "3JkljJxvXgjLz80X";
         string accessKeySecret = "L2ERHORPk3WkjqfGUb27RlxvT8x5f3";
         string endpoint        = "oss-cn-beijing.aliyuncs.com";
         //var conf = new ClientConfiguration();
         ////conf.IsCname = true;/// 配置使用Cname
         ////conf.ConnectionLimit = 512;  //HttpWebRequest最大的并发连接数目
         //conf.MaxErrorRetry = 3;     //设置请求发生错误时最大的重试次数
         //conf.ConnectionTimeout = 300;  //设置连接超时时间
         ////conf.SetCustomEpochTicks(customEpochTicks);        //设置自定义基准时间, CreateCancelTokenSource().Token.ToString()
         _ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);
         var exist = _ossClient.DoesBucketExist("vgic");
         if (!exist)
         {
             _ossClient.CreateBucket("vgic");
         }
     }
     return(_ossClient);
 }
Exemple #26
0
        public static void DoesBucketExist(string bucketName)
        {
            const string accessId  = "<your access id>";
            const string accessKey = "<your access key>";
            const string endpoint  = "<valid host name>";

            var client = new OssClient(endpoint, accessId, accessKey);

            try
            {
                var exist = client.DoesBucketExist(bucketName);
                Console.WriteLine("exist ? " + exist);
            }
            catch (OssException ex)
            {
                Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                                  ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
        public static void DoesBucketExist(string bucketName)
        {
            const string accessKeyId = "<your access key id>";
            const string accessKeySecret = "<your access key secret>";
            const string endpoint = "<valid host name>";

            var client = new OssClient(endpoint, accessKeyId, accessKeySecret);

            try
            {
                var exist = client.DoesBucketExist(bucketName);
                Console.WriteLine("exist ? " + exist);
            }
            catch (OssException ex)
            {
                Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                    ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }
Exemple #28
0
        /// <summary>
        /// 将文件上传到oss
        /// </summary>
        /// <param name="fileStream">文件流</param>
        /// <param name="filename">文件路径</param>
        /// <returns></returns>
        public string PutObject(Stream fileStream, string DownloadPath)
        {
            try
            {
                DownloadPath         = DownloadPath.Replace("\\", "/");
                meta.CacheControl    = "no-cache";
                meta.ContentEncoding = "utf-8";
                meta.ContentLength   = fileStream.Length;
                if (!client.DoesBucketExist(bucketName))
                {
                    CreateBucket(bucketName);
                }
                meta.ContentType = ContentType(Path.GetExtension(DownloadPath).Substring(1));
                //var result = client.PutObject("wangjie-img-hz", imgname, imgStream, meta);
                var result = client.PutObject(bucketName, DownloadPath, fileStream, meta);

                return(result.HttpStatusCode.ToString());
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
 /// <summary>
 ///     保存对象到指定的容器
 /// </summary>
 /// <param name="containerName"></param>
 /// <param name="blobName"></param>
 /// <param name="source"></param>
 public async Task SaveBlobStream(string containerName, string blobName, Stream source)
 {
     try
     {
         await Task.Run(() =>
         {
             var exist = _ossClient.DoesBucketExist(containerName);
             if (!exist)
             {
                 _ossClient.CreateBucket(containerName);
             }
             var md5        = OssUtils.ComputeContentMd5(source, source.Length);
             var objectMeta = new ObjectMetadata();
             objectMeta.AddHeader("Content-MD5", md5);
             objectMeta.UserMetadata.Add("Content-MD5", md5);
             _ossClient.PutObject(containerName, blobName, source, objectMeta);
         });
     }
     catch (Exception ex)
     {
         throw new StorageException(StorageErrorCode.PostError.ToStorageError(),
                                    new Exception(ex.ToString()));
     }
 }
Exemple #30
0
        /// <summary>
        /// 上传文件到Oss
        /// </summary>
        /// <param name="bucketName">bucket名</param>
        /// <param name="dir">文件夹</param>
        /// <param name="userId">用户ID</param>
        /// <param name="fileType">文件类型</param>
        /// <param name="relPath">服务器相对路径</param>
        /// <param name="physicalPath">服务器物理路径</param>
        /// <param name="ossPoint">站点</param>
        /// <param name="accessId">accessId</param>
        /// <param name="accessKey">accessKey</param>
        /// <returns></returns>
        public static string UploadFile(string bucketName, string dir, string userId, string fileType, string relPath, string physicalPath = "")
        {
            if (string.IsNullOrWhiteSpace(bucketName))
            {
                throw new Exception("Bucket名称为空");
            }
            if (string.IsNullOrWhiteSpace(userId))
            {
                throw new Exception("userId为空");
            }
            if (string.IsNullOrWhiteSpace(fileType))
            {
                throw new Exception("fileType为空");
            }

            // if (file == null || string.IsNullOrWhiteSpace(file.FileName)) throw new Exception("请选择文件");

            //建立Oss客户端连接
            OssClient client = ConnOssClient();

            if (!client.DoesBucketExist(bucketName))
            {
                throw new Exception("Bucket还没有建立");
            }
            FileStream file;
            string     fileExtension;

            if (!string.IsNullOrEmpty(physicalPath))
            {
                fileExtension = Path.GetExtension(physicalPath).ToLower();
                file          = System.IO.File.OpenRead(physicalPath);
            }
            else
            {
                fileExtension = Path.GetExtension(relPath).ToLower();
                file          = System.IO.File.OpenRead(HttpContext.Current.Server.MapPath(relPath));
            }
            //string fileName = file.FileName;



            //文件保存Key生成
            string Key = dir + "/" + userId + "/" + fileType + "/" + DateTime.Now.ToString("yyyyMMdd") + "/" + Guid.NewGuid().ToString("N").ToUpper() + fileExtension;

            //设置缓存
            ObjectMetadata Metadata = new ObjectMetadata();

            //Metadata.CacheControl = "Private";
            Metadata.CacheControl = string.Format("max-age={0}", 157680000);
            //Metadata.AddHeader("Expires", DateTime.MaxValue.GetDateTimeFormats('r')[0]);
            //Metadata.AddHeader("Expires", 2628000);
            Metadata.AddHeader("Content-Type", FileContentTypeHelper.GetMimeType(fileExtension));

            //using (StreamWriter sw = new StreamWriter(@"C:\MonitorHandlerException.txt", true, Encoding.UTF8))
            //{
            //    sw.WriteLine(string.Format("{0} 上传ossKey:{1}bucketName:{2} FileLeng{3}", DateTime.Now.ToString(), Key,bucketName,file.Length));

            //}
            //上传文件到Oss
            PutObjectResult putResult = client.PutObject(bucketName, Key, file, Metadata);

            return(GetDomain() + "/" + Key);
        }