public Stream GetFileStream(Files.Core.File file, long offset) { //NOTE: id here is not converted! var fileToDownload = GetFileById(file.ID); //Check length of the file if (fileToDownload == null) { throw new ArgumentNullException("file", Web.Files.Resources.FilesCommonResource.ErrorMassage_FileNotFound); } //if (fileToDownload.Length > SetupInfo.AvailableFileSize) //{ // throw FileSizeComment.FileSizeException; //} var fileStream = fileToDownload.GetDataTransferAccessor().GetDownloadStream(); if (fileStream.CanSeek) { file.ContentLength = fileStream.Length; // hack for google drive } if (offset > 0) { fileStream.Seek(offset, SeekOrigin.Begin); } return(fileStream); }
public Files.Core.File SaveFile(Files.Core.File file, Stream fileStream) { if (fileStream == null) { throw new ArgumentNullException("fileStream"); } ICloudFileSystemEntry entry = null; if (file.ID != null) { entry = SharpBoxProviderInfo.Storage.GetFile(MakePath(file.ID), null); } else if (file.FolderID != null) { var folder = GetFolderById(file.FolderID); file.Title = GetAvailableTitle(file.Title, folder, IsExist); entry = SharpBoxProviderInfo.Storage.CreateFile(folder, file.Title); } if (entry != null) { entry.GetDataTransferAccessor().Transfer(fileStream, nTransferDirection.nUpload); return(ToFile(entry)); } return(null); }
public bool IsExistOnStorage(Files.Core.File file) { var fileId = file.ID; var selector = GetSelector(fileId); file.ID = selector.ConvertId(fileId); var exist = selector.GetFileDao(fileId).IsExistOnStorage(file); file.ID = fileId; //Restore return(exist); }
private IFileDao GetFileDao(Files.Core.File file) { if (file.ID != null) { return(GetSelector(file.ID).GetFileDao(file.ID)); } if (file.FolderID != null) { return(GetSelector(file.FolderID).GetFileDao(file.FolderID)); } throw new ArgumentException("Can't create instance of dao for given file.", "file"); }
private Files.Core.File MakeId(Files.Core.File file) { if (file.ID != null) { file.ID = PathPrefix + "-" + file.ID; } if (file.FolderID != null) { file.FolderID = PathPrefix + "-" + file.FolderID; } return(file); }
/// <summary> /// Get stream of file /// </summary> /// <param name="file"></param> /// <param name="offset"></param> /// <returns>Stream</returns> public Stream GetFileStream(Files.Core.File file, long offset) { if (file == null) { throw new ArgumentNullException("file"); } var fileId = file.ID; var selector = GetSelector(fileId); file.ID = selector.ConvertId(fileId); var stream = selector.GetFileDao(fileId).GetFileStream(file, offset); file.ID = fileId; //Restore id return(stream); }
public Uri GetPreSignedUri(Files.Core.File file, TimeSpan expires) { if (file == null) { throw new ArgumentNullException("file"); } var fileId = file.ID; var selector = GetSelector(fileId); file.ID = selector.ConvertId(fileId); var streamUri = selector.GetFileDao(fileId).GetPreSignedUri(file, expires); file.ID = fileId; //Restore id return(streamUri); }
public bool IsSupportedPreSignedUri(Files.Core.File file) { if (file == null) { throw new ArgumentNullException("file"); } var fileId = file.ID; var selector = GetSelector(fileId); file.ID = selector.ConvertId(fileId); var isSupported = selector.GetFileDao(fileId).IsSupportedPreSignedUri(file); file.ID = fileId; //Restore id return(isSupported); }
public ChunkedUploadSession CreateUploadSession(Files.Core.File file, long contentLength) { if (SetupInfo.ChunkUploadSize > contentLength) { return new ChunkedUploadSession(MakeId(file), contentLength) { UseChunks = false } } ; var uploadSession = new ChunkedUploadSession(file, contentLength); ICloudFileSystemEntry sharpboxFile; if (file.ID != null) { sharpboxFile = GetFileById(file.ID); } else { var folder = GetFolderById(file.FolderID); sharpboxFile = SharpBoxProviderInfo.Storage.CreateFile(folder, GetAvailableTitle(file.Title, folder, IsExist)); } var sharpboxSession = sharpboxFile.GetDataTransferAccessor().CreateResumableSession(contentLength); if (sharpboxSession != null) { uploadSession.Items["SharpboxSession"] = sharpboxSession; } else { uploadSession.Items["TempPath"] = Path.GetTempFileName(); } uploadSession.File = MakeId(uploadSession.File); return(uploadSession); }
public Files.Core.File SaveFile(Files.Core.File file, Stream fileStream) { if (file == null) { throw new ArgumentNullException("file"); } var fileId = file.ID; var folderId = file.FolderID; IDaoSelector selector; Files.Core.File fileSaved = null; //Convert if (fileId != null) { selector = GetSelector(fileId); file.ID = selector.ConvertId(fileId); if (folderId != null) { file.FolderID = selector.ConvertId(folderId); } fileSaved = selector.GetFileDao(fileId).SaveFile(file, fileStream); } else if (folderId != null) { selector = GetSelector(folderId); file.FolderID = selector.ConvertId(folderId); fileSaved = selector.GetFileDao(folderId).SaveFile(file, fileStream); } if (fileSaved != null) { return(fileSaved); } throw new ArgumentException("No file id or folder id toFolderId determine provider"); }
public Uri GetPreSignedUri(Files.Core.File file, TimeSpan expires) { throw new NotSupportedException(); }
private Files.Core.File ConvertId(Files.Core.File file) { file.ID = ConvertId(file.ID); file.FolderID = ConvertId(file.FolderID); return(file); }
public bool UseTrashForRemove(Files.Core.File file) { return(false); }
public ChunkedUploadSession CreateUploadSession(Files.Core.File file, long contentLength) { return(GetFileDao(file).CreateUploadSession(ConvertId(file), contentLength)); }
public bool UseTrashForRemove(Files.Core.File file) { var selector = GetSelector(file.ID); return(selector.GetFileDao(file.ID).UseTrashForRemove(file)); }
public bool IsSupportedPreSignedUri(Files.Core.File file) { return(false); }
public Stream GetFileStream(Files.Core.File file) { return(GetFileStream(file, 0)); }
public bool IsExistOnStorage(Files.Core.File file) { return(true); }