public bool GetObjectProgress(string objectKey, string folderPath, EventHandler <StreamTransferProgressArgs> progressCallback)
 {
     try
     {
         string filePath         = folderPath + "\\" + objectKey.Substring(objectKey.LastIndexOf("/") + 1);
         var    getObjectRequest = new GetObjectRequest(bucketName, objectKey);
         getObjectRequest.StreamTransferProgress += progressCallback;
         var ossObject = client.GetObject(getObjectRequest);
         using (var stream = ossObject.Content)
         {
             using (FileStream fs = File.Open(filePath, FileMode.OpenOrCreate))
             {
                 var buffer    = new byte[1024 * 1024];
                 var bytesRead = 0;
                 while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
                 {
                     fs.Write(buffer, 0, bytesRead);
                 }
             }
         }
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
        public IEnumerable <OssObjectSummary> ListObjectWithSubDir()
        {
            List <OssObjectSummary> summaryList = new List <OssObjectSummary>();

            try
            {
                ObjectListing result     = null;
                string        nextMarker = string.Empty;
                do
                {
                    var listObjectsRequest = new ListObjectsRequest(bucketName)
                    {
                        Marker  = nextMarker,
                        MaxKeys = 100
                    };
                    result = client.ListObjects(listObjectsRequest);
                    summaryList.AddRange(result.ObjectSummaries);
                    nextMarker = result.NextMarker;
                } while (result.IsTruncated);
            }
            catch (OssException ex)
            {
                lastError = ex;
            }
            return(summaryList);
        }
        //TODO
        //AppendObject

        /// <summary>
        /// Put File Multi Part
        /// </summary>
        public bool PutFileMultipart(string filePath, string objectKey, int partCount)
        {
            bool putResult = true;

            try
            {
                var initMultiPartResult = InitiateMultipartUpload(filePath, objectKey);
                var requestId           = initMultiPartResult.UploadId;

                if (initMultiPartResult.HttpStatusCode == System.Net.HttpStatusCode.OK)
                {
                    List <PartETag> list   = UploadParts(filePath, objectKey, partCount, requestId);
                    var             result = CompleteUploadPart(objectKey, requestId, list);

                    if (result.HttpStatusCode != System.Net.HttpStatusCode.OK)
                    {
                        putResult = false;
                    }
                }
            }
            catch (OssException ex)
            {
                lastError = ex;
            }
            return(putResult);
        }
        public IEnumerable <string> ListObjectAndSubDir(string dir)
        {
            List <string> summaryList = new List <string>();

            try
            {
                string prefix = "";
                if (!string.IsNullOrEmpty(dir))
                {
                    prefix = dir + "/";
                }
                var listObjectsRequest = new ListObjectsRequest(bucketName)
                {
                    Prefix    = prefix,
                    Delimiter = "/"
                };
                var result = client.ListObjects(listObjectsRequest);
                summaryList.AddRange(result.ObjectSummaries.Select(x => x.Key));
                summaryList.AddRange(result.CommonPrefixes);
            }
            catch (OssException ex)
            {
                lastError = ex;
            }
            return(summaryList);
        }
Esempio n. 5
0
 private static void GetObjectCallback(IAsyncResult ar)
 {
     try
     {
         var    result      = ossClient.EndGetObject(ar);
         byte[] buffer      = new byte[4096];
         var    reponseBody = result.Content;
         using (reponseBody)
         {
             while (reponseBody.Read(buffer, 0, 4096) != 0)
             {
                 ;
             }
         }
         Console.WriteLine("ETag: " + result.Metadata.ETag);
         Console.WriteLine("AsyncState:" + ar.AsyncState as string);
     }
     catch (Exception ex)
     {
         OssException ae = ex as OssException;
         Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                           ae.ErrorCode, ae.Message, ae.RequestId, ae.HostId);
     }
     finally
     {
         _evnet.Set();
     }
 }
Esempio n. 6
0
        public static OssException CreateException(string errorCode, string message, string requestId, string hostId, Exception innerException)
        {
            OssException exception = (innerException != null) ? new OssException(message, innerException) : new OssException(message);

            exception.RequestId = requestId;
            exception.HostId    = hostId;
            exception.ErrorCode = errorCode;
            return(exception);
        }
 public ObjectMetadata GetObjectMetadata(string objectKey)
 {
     try
     {
         var metadata = client.GetObjectMetadata(bucketName, objectKey);
     }
     catch (OssException ex)
     {
         lastError = ex;
     }
     return(null);
 }
 /// <summary>
 /// Set Bucket Acl
 /// </summary>
 public bool SetBucketAcl(CannedAccessControlList accessType)
 {
     try
     {
         client.SetBucketAcl(bucketName, accessType);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 private void ListObjectCallback(IAsyncResult ar)
 {
     try
     {
         var result = client.EndListObjects(ar);
         globalSummaryList = result.ObjectSummaries;
         resetEvent.Set();
     }
     catch (OssException ex)
     {
         lastError = ex;
     }
 }
 /// <summary>
 /// CreateBucket
 /// </summary>
 /// <param name="bucketName">BucketName</param>
 /// <returns>result</returns>
 public bool CreateBucket()
 {
     try
     {
         var bucket = client.CreateBucket(bucketName);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 /// <summary>
 /// List All Buckets
 /// </summary>
 public IEnumerable <Bucket> ListBuckets()
 {
     try
     {
         var buckets = client.ListBuckets();
         return(buckets);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(null);
     }
 }
 /// <summary>
 /// Delete object
 /// </summary>
 /// <param name="key">object name</param>
 /// <remarks>if you want to delete folder,append "/" in the end</remarks>
 public bool DeleteObject(string name)
 {
     try
     {
         client.DeleteObject(bucketName, name);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 /// <summary>
 /// Upload file object to bucket
 /// </summary>
 /// <param name="filePath">File to upload</param>
 /// <param name="objectKey">Object key in oss</param>
 /// <returns></returns>
 public bool PutFile(string filePath, string objectKey)
 {
     try
     {
         client.PutObject(bucketName, objectKey, filePath);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 /// <summary>
 /// Upload file object to bucket
 /// </summary>
 /// <param name="filePath">File to upload</param>
 /// <returns></returns>
 public bool PutFile(string filePath)
 {
     try
     {
         client.PutObject(bucketName, System.IO.Path.GetFileName(filePath), filePath);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 /// <summary>
 /// Delete Bucket
 /// </summary>
 public bool DeleteBucket()
 {
     try
     {
         client.DeleteBucket(bucketName);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 public IEnumerable <OssObjectSummary> ListObjectsAsync()
 {
     try
     {
         resetEvent.Reset();
         var listObjectsRequest = new ListObjectsRequest(bucketName);
         client.BeginListObjects(listObjectsRequest, ListObjectCallback, null);
         resetEvent.WaitOne();
     }
     catch (OssException ex)
     {
         lastError = ex;
     }
     return(globalSummaryList);
 }
 /// <summary>
 /// Upload string object to bucket
 /// </summary>
 /// <param name="str">string object</param>
 /// <param name="name">designate object name</param>
 /// <returns></returns>
 public bool PutString(string str, string name)
 {
     try
     {
         byte[]       binaryData     = Encoding.ASCII.GetBytes(str);
         MemoryStream requestContent = new MemoryStream(binaryData);
         client.PutObject(bucketName, name, requestContent);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         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);
        }
 /// <summary>
 /// Upload file object to bucket with progress
 /// </summary>
 /// <param name="filePath">File to upload</param>
 /// <param name="objcetKey">Object key in oss</param>
 /// <param name="progressCallback">Progress event handler</param>
 public void PutFileProgress(string filePath, string objectKey, EventHandler <StreamTransferProgressArgs> progressCallback)
 {
     try
     {
         using (var fs = File.Open(filePath, FileMode.Open))
         {
             var putObjectRequest = new PutObjectRequest(bucketName, objectKey, fs);
             putObjectRequest.StreamTransferProgress += progressCallback;
             client.PutObject(putObjectRequest);
         }
     }
     catch (OssException ex)
     {
         lastError = ex;
     }
 }
        /// <summary>
        /// Get Bucket Acl
        /// </summary>
        /// <returns></returns>
        public CannedAccessControlList GetBucketAcl()
        {
            AccessControlList       acl        = null;
            CannedAccessControlList accessType = CannedAccessControlList.Default;

            try
            {
                acl        = client.GetBucketAcl(bucketName);
                accessType = acl.ACL;
            }
            catch (OssException ex)
            {
                lastError = ex;
            }
            return(accessType);
        }
        /// <summary>
        /// List objcets
        /// </summary>
        /// <returns>OssObjectSummary Collection</returns>
        public IEnumerable <OssObjectSummary> ListObjects()
        {
            IEnumerable <OssObjectSummary> summaryList = new List <OssObjectSummary>();

            try
            {
                var listObjectsRequest = new ListObjectsRequest(bucketName);
                var result             = client.ListObjects(listObjectsRequest);
                summaryList = result.ObjectSummaries;
            }
            catch (OssException ex)
            {
                lastError = ex;
            }
            return(summaryList);
        }
 /// <summary>
 /// Put File With Call Back
 /// </summary>
 /// <param name="filePath">File to upload</param>
 /// <param name="objectKey">Object key in oss</param>
 /// <returns></returns>
 private void PutObjectCallback(string filePath, string objectKey, string callbackUrl, string callbackBody)
 {
     try
     {
         var metadata = BuildCallbackMetadata(callbackUrl, callbackBody);
         using (var fs = File.Open(filePath, FileMode.Open))
         {
             var putObjectRequest = new PutObjectRequest(bucketName, objectKey, fs, metadata);
             var result           = client.PutObject(putObjectRequest);
         }
     }
     catch (OssException ex)
     {
         lastError = ex;
     }
 }
Esempio n. 23
0
 private static void PutObjectCallback(IAsyncResult ar)
 {
     try
     {
         var result = client.EndPutObject(ar);
         Console.WriteLine(result.ETag);
     }
     catch (Exception ex)
     {
         OssException ae = ex as OssException;
         Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                           ae.ErrorCode, ae.Message, ae.RequestId, ae.HostId);
     }
     finally
     {
         _evnet.Set();
     }
 }
 public bool DeleteBucketObjects()
 {
     try
     {
         var keys       = new List <string>();
         var listResult = client.ListObjects(bucketName);
         foreach (var summary in listResult.ObjectSummaries)
         {
             keys.Add(summary.Key);
         }
         var request = new DeleteObjectsRequest(bucketName, keys, false);
         client.DeleteObjects(request);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
        private CompleteMultipartUploadResult CompleteUploadPart(string objectKey, string uploadId, List <PartETag> partETags)
        {
            CompleteMultipartUploadResult uploadResult = null;

            try
            {
                var completeMultipartUploadRequest = new CompleteMultipartUploadRequest(bucketName, objectKey, uploadId);
                foreach (var partETag in partETags)
                {
                    completeMultipartUploadRequest.PartETags.Add(partETag);
                }
                uploadResult = client.CompleteMultipartUpload(completeMultipartUploadRequest);
            }
            catch (OssException ex)
            {
                lastError = ex;
            }

            return(uploadResult);
        }
 /// <summary>
 /// Put File With Md5 Check
 /// </summary>
 /// <param name="filePath">File to upload</param>
 /// <param name="objectKey">Object key in oss</param>
 /// <param name="md5">md5 code</param>
 /// <returns></returns>
 public bool PutFileWithMd5(string filePath, string objectKey, string md5)
 {
     try
     {
         using (FileStream fs = File.Open(filePath, FileMode.Open))
         {
             md5 = OssUtils.ComputeContentMd5(fs, fs.Length);
         }
         ObjectMetadata objectMeta = new ObjectMetadata
         {
             ContentMd5 = md5
         };
         client.PutObject(bucketName, objectKey, filePath, objectMeta);
         return(true);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 public bool CopyObect(string sourceKey, string targetBucket, string targetKey)
 {
     try
     {
         var metadata = new ObjectMetadata();
         metadata.AddHeader(Aliyun.OSS.Util.HttpHeaders.ContentType, "text/html");
         var req = new CopyObjectRequest(bucketName, sourceKey, targetBucket, targetKey)
         {
             NewObjectMetadata = metadata
         };
         var ret = client.CopyObject(req);
         if (ret.HttpStatusCode == System.Net.HttpStatusCode.OK)
         {
             return(true);
         }
         return(false);
     }
     catch (OssException ex)
     {
         lastError = ex;
         return(false);
     }
 }
 public void GetObject(string objectKey, string folderPath)
 {
     try
     {
         string filePath = folderPath + "\\" + objectKey.Substring(objectKey.LastIndexOf("/") + 1);
         var    file     = client.GetObject(bucketName, objectKey);
         using (var requestStream = file.Content)
         {
             byte[] buf = new byte[1024];
             var    fs  = File.Open(filePath, FileMode.OpenOrCreate);
             var    len = 0;
             while ((len = requestStream.Read(buf, 0, 1024)) != 0)
             {
                 fs.Write(buf, 0, len);
             }
             fs.Close();
         }
     }
     catch (OssException ex)
     {
         lastError = ex;
     }
 }
        //TODO
        //PutFileWithHeader()

        /// <summary>
        /// Pub File Async
        /// </summary>
        /// <param name="bucketName">Bucket Name</param>
        public void PutFileAsync(string bucketName, string filePath, string objcetKey, Action act)
        {
            try
            {
                resetEvent.Reset();

                using (var fs = File.Open(filePath, FileMode.Open))
                {
                    string         result   = "Notice user: put object finish";
                    ObjectMetadata metadata = new ObjectMetadata();
                    client.BeginPutObject(bucketName, objcetKey, fs, metadata, PutFileAsyncCallback, result.ToCharArray());
                    resetEvent.WaitOne();

                    if (act != null)
                    {
                        act();
                    }
                }
            }
            catch (OssException ex)
            {
                lastError = ex;
            }
        }