Exemple #1
0
 public void getBucketLoggingAsync(GetBucketLoggingRequest request, OnSuccessCallback <CosResult> successCallback, OnFailedCallback failCallback)
 {
     schedue(request, new Model.Bucket.GetBucketLoggingResult(), successCallback, failCallback);
 }
Exemple #2
0
 public void GetObject(GetObjectBytesRequest request, OnSuccessCallback <CosResult> successCallback, OnFailedCallback failCallback)
 {
     schedue(request, new GetObjectBytesResult(), successCallback, failCallback);
 }
Exemple #3
0
 public void deleteBucketWebsiteAsync(DeleteBucketWebsiteRequest request, OnSuccessCallback <CosResult> successCallback, OnFailedCallback failCallback)
 {
     schedue(request, new Model.Bucket.DeleteBucketWebsiteResult(), successCallback, failCallback);
 }
Exemple #4
0
 public void listBucketInventoryAsync(ListBucketInventoryRequest request, OnSuccessCallback <CosResult> successCallback, OnFailedCallback failCallback)
 {
     schedue(request, new Model.Bucket.ListBucketInventoryResult(), successCallback, failCallback);
 }
Exemple #5
0
 public virtual Request OnFailed(OnFailedCallback onFailed)
 {
     this.onFailed = onFailed;
     return(this);
 }
Exemple #6
0
        private void UploadFile(string bucket, string fileKey, string filePath,
                                OnProgressCallback progressCb, OnSuccessCallback <CosResult> successCb, OnFailedCallback failedCb)
        {
            COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, null, fileKey)
            {
                progressCallback = progressCb, successCallback = successCb, failCallback = failedCb
            };

            uploadTask.SetSrcPath(filePath);
            transferManager.Upload(uploadTask);
        }
Exemple #7
0
        private void _DeltaUpdateProject(string filePath, string projectId,
                                         OnProgressCallback progressCb, OnMessageCallback messageCb, OnSuccessCallback <CosResult> successCb,
                                         OnFailedCallback failedCb)
        {
            var    localDir          = Path.GetDirectoryName(filePath);
            var    fileName          = Path.GetFileName(filePath);
            var    fileKey           = $"{projectId}/{fileName}";
            var    baseMetaKey       = $"{projectId}/{BASE_META}";
            var    baseMetaPath      = $"{localDir}/{BASE_META}";
            var    deltaKey          = $"{projectId}/{fileName}{DELTA_SUFFIX}";
            var    deltaPath         = $"{filePath}{DELTA_SUFFIX}";
            var    baseSignature     = $"{fileName}{SIG_SUFFIX}";
            var    baseSignaturePath = $"{localDir}/{baseSignature}";
            string hashPattern       = @"(?<=" + projectId + @"/)(.*)(?=\.zip$)";
            string projectHash       = new Regex(hashPattern).Match(fileKey).Value;

            clearOldFiles(baseMetaPath, baseSignaturePath, deltaPath);

            messageCb(COS_MSG.TITLE_DOWNLOADING_META_FILE,
                      string.Format(COS_MSG.INFO_DOWNLOADING_META_FILE, baseMetaKey, $"{localDir}/{BASE_META}"));
            syncDownloadFile(deltaBucket, baseMetaKey, localDir, BASE_META,
                             progressCb, DoNothing, failedCb);
            var metaInfo = JsonConvert.DeserializeObject <MetaInfo>(File.ReadAllText(baseMetaPath));

            if ((float)new FileInfo(filePath).Length / metaInfo.baseFileSize > 1 + DELTA_THRESHOLD)
            {
                clearOldFiles(baseMetaPath);
                _InitProject(filePath, projectId, progressCb, messageCb, successCb, failedCb);
                return;
            }

            ucbFacade.InitDeltaUpload(new DeltaInfo
            {
                baseFileKey  = metaInfo.baseFileName,
                deltaFileKey = $"{fileKey}{DELTA_SUFFIX}",
                newFileKey   = fileKey,
                projectId    = projectId,
                fileHash     = projectHash
            });
            messageCb(COS_MSG.TITLE_DOWNLOADING_SIG_FILE,
                      string.Format(COS_MSG.INFO_DOWNLOADING_SIG_FILE, metaInfo.signatureKey, $"{localDir}/{baseSignature}"));
            syncDownloadFile(deltaBucket, metaInfo.signatureKey, localDir, baseSignature,
                             progressCb, DoNothing, failedCb);

            messageCb(COS_MSG.TITLE_CREATING_DELTA_FILE,
                      string.Format(COS_MSG.INFO_CREATING_DELTA_FILE, deltaPath, filePath, baseSignaturePath));
            CreateDelta(filePath, baseSignaturePath, deltaPath);
            if ((float)new FileInfo(deltaPath).Length / metaInfo.baseFileSize > DELTA_THRESHOLD)
            {
                clearOldFiles(baseMetaPath, baseSignaturePath, deltaPath);
                _InitProject(filePath, projectId, progressCb, messageCb, successCb, failedCb);
                return;
            }

            messageCb(COS_MSG.TITLE_UPLOADING_DELTA_FILE,
                      string.Format(COS_MSG.INFO_UPLOADING_DELTA_FILE, deltaKey));
            UploadFile(deltaBucket, deltaKey, deltaPath, progressCb,
                       delegate(CosResult uploadResult)
            {
                deltaPatch(metaInfo.baseFileName, fileKey, projectId, projectHash);
                clearOldFiles(baseMetaPath, baseSignaturePath, deltaPath);
                messageCb(COS_MSG.TITLE_PATCHING_DELTA_FILE, COS_MSG.INFO_PATCHING_DELTA_FILE);
            }, failedCb);
        }
Exemple #8
0
 private void syncDownloadFile(string bucket, string fileKey, string localDir, string localFileName,
                               OnProgressCallback progressCb, OnSuccessCallback <CosResult> successCb, OnFailedCallback failedCb)
 {
     try
     {
         GetObjectRequest request = new GetObjectRequest(bucket, fileKey, localDir, localFileName);
         request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
         request.SetCosProgressCallback(progressCb);
         GetObjectResult result = cosXml.GetObject(request);
     }
     catch (CosClientException clientEx)
     {
         failedCb(clientEx, null);
     }
     catch (CosServerException serverEx)
     {
         failedCb(null, serverEx);
     }
 }
Exemple #9
0
 void CosXml.selectObjectAsync(SelectObjectRequest request, OnSuccessCallback <CosResult> successCallback, OnFailedCallback failCallback)
 {
     schedue(request, new Model.Object.SelectObjectResult(), successCallback, failCallback);
 }
Exemple #10
0
 public void putBucketDomainAsync(PutBucketDomainRequest request, OnSuccessCallback <CosResult> successCallback, OnFailedCallback failCallback)
 {
     schedue(request, new Model.Bucket.PutBucketDomainResult(), successCallback, failCallback);
 }