Exemple #1
0
        public static void UploadFile(string localPath, string buckName, string key)
        {
            bool waitForResult = true;

            if (!File.Exists(localPath))
            {
                Debug.LogError("File path not exist: " + localPath);
            }

            using (var fs = File.Open(localPath, FileMode.Open))
            {
                OssClient ossClient = new OssClient(Config.Endpoint, Config.AccessKeyId, Config.AccessKeySecret);
                try
                {
                    var metadata = new ObjectMetadata();
                    metadata.ContentLength = fs.Length;
                    metadata.CacheControl  = "public";

                    ossClient.BeginPutObject(buckName, key, fs, metadata, (asyncResult) =>
                    {
                        try
                        {
                            ossClient.EndPutObject(asyncResult);
                        }
                        catch (Exception ex)
                        {
                            Debug.LogError(ex);
                        }
                        finally
                        {
                            if (OnUploaded != null)
                            {
                                OnUploaded.Invoke();
                            }
                            waitForResult = false;
                        }
                    }, null);
                }
                catch (OssException ex)
                {
                    Debug.LogError(string.Format("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                                                 ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId));
                    waitForResult = false;
                }
                catch (Exception ex)
                {
                    Debug.LogError(ex);
                    waitForResult = false;
                }

                while (waitForResult)
                {
                    if (OnUploading != null)
                    {
                        OnUploading.Invoke();
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 回调上传
        /// </summary>
        /// <param name="ar"></param>
        private static void PutObjectCallback(IAsyncResult ar)
        {
            try {
                client.EndPutObject(ar);

                Console.WriteLine(ar.AsyncState as string);
            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            } finally {
                _event.Set();
            }
        }
Exemple #3
0
 private void PutObjectCallback(IAsyncResult ar)
 {
     try
     {
         var result = _oss.EndPutObject(ar);
     }
     catch (Exception err)
     {
         throw err;
     }
     finally
     {
         _event.Set();
     }
 }
 /// <summary>
 /// Put File Async Callback
 /// </summary>
 /// <param name="ar">IAsyncResult</param>
 private void PutFileAsyncCallback(IAsyncResult ar)
 {
     try
     {
         client.EndPutObject(ar);
     }
     catch (OssException ex)
     {
         throw ex;
     }
     finally
     {
         resetEvent.Set();
     }
 }
Exemple #5
0
        private static void PutObjectCallback(IAsyncResult ar)
        {
            try
            {
                client.EndPutObject(ar);

                Debug.LogError(ar.AsyncState as string);
            }
            catch (Exception ex)
            {
                Debug.LogError(ex.Message);
            }
            finally
            {
                _event.Set();
            }
        }
Exemple #6
0
        private static void PutObjectCallback(IAsyncResult ar)
        {
            Hashtable       state       = (Hashtable)ar.AsyncState;
            Action <string> putCallback = (Action <string>)state["callback"];

            try
            {
                OssClient  ossClient   = (OssClient)state["client"];
                FileStream fs          = (FileStream)state["fs"];
                string     ossfilename = (string)state["ossfilename"];
                ossClient.EndPutObject(ar);
                fs.Close();
                _dispatcher.Enqueue(() => {
                    if (putCallback != null)
                    {
                        putCallback(ossfilename);
                    }
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                _dispatcher.Enqueue(() => {
                    if (putCallback != null)
                    {
                        if (ex is ServiceException)
                        {
                            string errorCode = ((ServiceException)ex).ErrorCode;
                            putCallback(errorCode);
                            if (errorCode == "InvalidAccessKeyId")
                            {
                                FetchSTSToken();
                            }
                        }
                        else
                        {
                            putCallback(ex.Message);
                        }
                    }
                });
            }
            finally
            {
//				_event.Set();
            }
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ar"></param>
        private void AliyunFileUpLoadCallBack(IAsyncResult ar)
        {
            try
            {
                Client.EndPutObject(ar);
            }
            catch (Exception ex)
            {
#if DEBUG
                Console.Error.WriteLine($"******************{ex.Message}************************");
#endif
            }
            finally
            {
                _event.Set();
            }
        }
        private static void PutObjectCallback(IAsyncResult ar)
        {
            try
            {
                var result = client.EndPutObject(ar);
                Console.WriteLine("Put object succeeded, callback response content:{0}", GetCallbackResponse(result));

                Console.WriteLine(ar.AsyncState as string);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                _event.Set();
            }
        }
 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();
     }
 }
        private static void PutObjectCallback(IAsyncResult ar)
        {
            var client = new OssClient("oss-cn-shenzhen.aliyuncs.com", "LTAId7dsrQHujhU5", "O3nQOqai4yXrvGCKNbvgrKuU8f7U7p");

            try
            {
                var result = client.EndPutObject(ar);
                Console.WriteLine("ETag:{0}", result.ETag);
                Console.WriteLine("User Parameter:{0}", ar.AsyncState as string);
                Console.WriteLine("Put object succeeded");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Put object failed, {0}", ex.Message);
            }
            finally
            {
                _event.Set();
            }
        }
        public async Task <bool> SaveFileAsync(string path, Stream stream, CancellationToken cancellationToken = default)
        {
            if (String.IsNullOrEmpty(path))
            {
                throw new ArgumentNullException(nameof(path));
            }

            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            var seekableStream = stream.CanSeek ? stream : new MemoryStream();

            if (!stream.CanSeek)
            {
                await stream.CopyToAsync(seekableStream).AnyContext();

                seekableStream.Seek(0, SeekOrigin.Begin);
            }

            try {
                var putResult = await Task.Factory.FromAsync((request, callback, state) => _client.BeginPutObject(request, callback, state), result => _client.EndPutObject(result), new PutObjectRequest(_bucket, NormalizePath(path), seekableStream), null).AnyContext();

                return(putResult.HttpStatusCode == HttpStatusCode.OK);
            } catch (Exception) {
                return(false);
            } finally {
                if (!stream.CanSeek)
                {
                    seekableStream.Dispose();
                }
            }
        }