.net OSS 拷貝文件 和 刪除文件 進行文件的重命名

/// <summary>
        /// 拷貝文件重命名  拷貝的文件必須小於1G(當前在同一個存儲空間下)
        /// </summary>
        /// <param name="sourceBucket">原文件所在存儲空間的名稱</param>
        /// <param name="sourceKey">原文件的名稱</param>
        /// <param name="targetBucket">目標文件所在存儲空間的名稱 可以與原文件所在的存儲空間是同一個  也可以是另一個</param>
        /// <param name="targetKey">目標文件的名稱</param>       
        private HttpResponseMessage CopyObect(string sourceKey,string targetKey)
        {

            try
            {
                //sourceKey = "test/test.txt";
                //targetKey = "test/2018.txt";
                var metadata = new ObjectMetadata();
                metadata.AddHeader(Aliyun.OSS.Util.HttpHeaders.ContentType, "text/html");
                var req = new CopyObjectRequest(m_bucketName, sourceKey, m_bucketName, targetKey)
                {
                    NewObjectMetadata = metadata
                };
                handleclient.CopyObject(req);
                DeleteObject(sourceKey);
                return ObjectToJson.toJson(new {status=200,rel=true,data= "Copy object succeeded" } );
            }
            catch (OssException ex)
            {
                return ObjectToJson.toJson(new {status=201,error=string.Format("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                    ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId) } );
            }
            catch (Exception ex)
            {
                return ObjectToJson.toJson(new { status = 201, error = string.Format("Copy object failed. {0}", ex.Message) });
            }
        }

 

 

/// <summary>
        /// 刪除指定存儲空間下的特定文件
        /// </summary>
        /// <param name="bucketName">存儲空間的名稱</param>
        /// <param name="key">文件的名稱</param>        
        private bool DeleteObject(string key)
        {
            try
            {
                var listResult = handleclient.ListObjects(m_bucketName);
                foreach (var summary in listResult.ObjectSummaries)
                {
                    if(key == summary.Key)
                        break; 
                }
                handleclient.DeleteObject(m_bucketName, key);
                Console.WriteLine("Delete object succeeded");
            }
            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(ex.Message);
            }
        } 

也可以利用這兩個方法進行文件的重命名  阿里雲並沒有提供直接修改文件名的函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章