public void downloadFiles(IcloudFileInfo fileinfo) { throw new NotImplementedException(); }
/* public List<IcloudFileInfo> getAllfiles() { using (client) { List<IcloudFileInfo> listOFFiles = new List<IcloudFileInfo>(); ListObjectsRequest request = new ListObjectsRequest { BucketName = this.bucketname, MaxKeys = 30 }; do { ListObjectsResponse response = client.ListObjects(request); foreach (S3Object entry in response.S3Objects) { IcloudFileInfo rd = new cloudFileInfo(); rd.DateofBackup = entry.LastModified; rd.deviceName = entry.Key.Split('/')[0]; rd.CloudFileName = entry.Key.Split('/')[1]; rd.fileSize = entry.Size; GetObjectMetadataRequest metaRequest = new GetObjectMetadataRequest { BucketName = this.bucketname, Key = entry.Key }; GetObjectMetadataResponse responseMeta = client.GetObjectMetadata(metaRequest); rd.localfileName = responseMeta.Metadata["FileName"]; rd.localfileLastModifiedDate = responseMeta.Metadata["ModifiedDate"].ToString(); rd.localfolderName = responseMeta.Metadata["FolderName"].ToString(); listOFFiles.Add(rd); } // If response is truncated, set the marker to get the next // set of keys. if (response.IsTruncated) { request.Marker = response.NextMarker; } else { request = null; } } while (request != null); return listOFFiles; } } * */ public void deleteFile(IcloudFileInfo fr) { DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest { BucketName = (this.bucketname), Key = (fr.deviceName + @"/" + (fr.CloudFileName)) }; using (client ) { client.DeleteObject(deleteObjectRequest); } }
/// <summary> /// Downloads a file /// </summary> /// <param name="accessKey">The AWSAccessKey </param> /// <param name="SecretKey">The AWSSecretKey </param> /// <param name="StorageAccount">The AS3 Bucket to be used </param> /// <param name="DataRegion">The AS3 Region where data is stored. Valid Values are USE1, USW1,USW2 or Null</param> /// <returns></returns> public void downloadFile(IcloudFileInfo file, string dest) { //var di = new DirectoryInfo(dest); //di.Attributes |= FileAttributes.Normal; dest = Path.Combine(dest, file.localfileName); if (File.Exists(dest)) { File.Delete(dest); } using (client ) { GetObjectRequest getObjectRequest = new GetObjectRequest { BucketName = this.bucketname, Key = file.deviceName + @"/" + file.CloudFileName }; using (GetObjectResponse getObjectResponse = client.GetObject(getObjectRequest)) { { using (Stream s = getObjectResponse.ResponseStream) { using (FileStream fs = new FileStream(dest, FileMode.Create, FileAccess.ReadWrite)) { byte[] data = new byte[304087]; int bytesRead = 0; do { bytesRead = s.Read(data, 0, data.Length); fs.Write(data, 0, bytesRead); } while (bytesRead > 0); fs.Flush(); } } } } } }
public async Task uploadFileAsyc(IcloudFileInfo fr) { //Create A New Client For every request, /* AmazonS3Config S3Config = new AmazonS3Config() { ServiceURL = "s3.amazonaws.com", RegionEndpoint = Amazon.RegionEndpoint.USEast1 }; */ try { // AmazonS3Client clientUpload = new AmazonS3Client(_settings.cloudKey1, _settings.cloudKey2, S3Config); TransferUtility fileTransferUtility = new TransferUtility(this.client); fr.CloudFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + Guid.NewGuid().ToString("N") + "_" + Path.GetFileName(fr.localfileName); TransferUtilityUploadRequest fileTransferUtilityRequest = new TransferUtilityUploadRequest { BucketName = (this.bucketname), FilePath = (Path.Combine(fr.localfolderName, fr.localfileName)), Key = (fr.deviceName + @"/" + fr.CloudFileName), //PartSize = (1457), CannedACL = S3CannedACL.AuthenticatedRead }; fileTransferUtilityRequest.Metadata["FileName"] = Path.GetFileName(fr.localfileName); fileTransferUtilityRequest.Metadata["DateCreated"] = fr.DateofBackup.ToString(); fileTransferUtilityRequest.Metadata["FolderName"] = fr.localfolderName; fileTransferUtilityRequest.Metadata["ModifiedDate"] = fr.localfileLastModifiedDate; fileTransferUtilityRequest.Metadata["DeviceName"] = fr.deviceName; fileTransferUtilityRequest.Metadata["OperatingSystem"] = fr.OperatingSystem; await fileTransferUtility.UploadAsync (fileTransferUtilityRequest); } catch (AmazonS3Exception err) { throw new Exception(err.Message); } catch (Exception err) { throw new Exception(err.Message); } }