public Stream GetDownloadStream(File afile, long?start = null, long?end = null) { CustomDisposable <HttpWebResponse> ResponseGenerator(long instart, long inend, File file) { //var urldata = new YadGetResourceUrlRequest(HttpSettings, (YadWebAuth)Authent, file.FullPath) // .MakeRequestAsync() // .Result; var _ = new YaDCommonRequest(HttpSettings, (YadWebAuth)Authent) .With(new YadGetResourceUrlPostModel(file.FullPath), out YadResponseModel <ResourceUrlData, ResourceUrlParams> itemInfo) .MakeRequestAsync().Result; var url = "https:" + itemInfo.Data.File; HttpWebRequest request = new YadDownloadRequest(HttpSettings, (YadWebAuth)Authent, url, instart, inend); var response = (HttpWebResponse)request.GetResponse(); return(new CustomDisposable <HttpWebResponse> { Value = response, OnDispose = () => {} }); } var stream = new DownloadStream(ResponseGenerator, afile, start, end); return(stream); }
private async Task <IEntry> MediaFolderInfo(string path) { var root = await MediaFolderRootInfo() as Folder; if (null == root) { return(null); } if (WebDavPath.PathEquals(path, YadMediaPath)) { return(root); } string albumName = WebDavPath.Name(path); var album = root.Folders.FirstOrDefault(f => f.Name == albumName); if (null == album) { return(null); } _ = new YaDCommonRequest(HttpSettings, (YadWebAuth)Authent) .With(new YadFolderInfoPostModel(album.PublicLinks.First().Key, "/album"), out YadResponseModel <YadFolderInfoRequestData, YadFolderInfoRequestParams> folderInfo) .MakeRequestAsync() .Result; var entry = folderInfo.Data.ToFolder(null, null, path, PublicBaseUrlDefault); return(entry); }
private HttpRequestMessage CreateUploadClientRequest(PushStreamContent content, File file) { var hash = (FileHashYad?)file.Hash; var _ = new YaDCommonRequest(HttpSettings, (YadWebAuth)Authent) .With(new YadGetResourceUploadUrlPostModel(file.FullPath, file.OriginalSize, hash?.HashSha256.Value ?? string.Empty, hash?.HashMd5.Value ?? string.Empty), out YadResponseModel <ResourceUploadUrlData, ResourceUploadUrlParams> itemInfo) .MakeRequestAsync().Result; var url = itemInfo.Data.UploadUrl; var request = new HttpRequestMessage { RequestUri = new Uri(url), Method = HttpMethod.Put }; request.Headers.Add("Accept", "*/*"); request.Headers.TryAddWithoutValidation("User-Agent", HttpSettings.UserAgent); request.Content = content; request.Content.Headers.ContentLength = file.OriginalSize; return(request); }
private HttpRequestMessage UploadClientRequest(PushStreamContent content, File file) { //var urldata = // new YadGetResourceUploadUrlRequest(HttpSettings, (YadWebAuth)Authent, file.FullPath, file.OriginalSize) // .MakeRequestAsync() // .Result; //var url = urldata.Models[0].Data.UploadUrl; var _ = new YaDCommonRequest(HttpSettings, (YadWebAuth)Authent) .With(new YadGetResourceUploadUrlPostModel(file.FullPath, file.OriginalSize), out YadResponceModel <ResourceUploadUrlData, ResourceUploadUrlParams> itemInfo) .MakeRequestAsync().Result; var url = itemInfo.Data.UploadUrl; var request = new HttpRequestMessage { RequestUri = new Uri(url), Method = HttpMethod.Put }; request.Headers.Add("Accept", "*/*"); request.Headers.TryAddWithoutValidation("User-Agent", HttpSettings.UserAgent); request.Content = content; request.Content.Headers.ContentLength = file.OriginalSize; return(request); }
public async Task <AddFileResult> AddFile(string fileFullPath, IFileHash fileHash, FileSize fileSize, DateTime dateTime, ConflictResolver?conflictResolver) { var hash = (FileHashYad?)fileHash; var _ = new YaDCommonRequest(HttpSettings, (YadWebAuth)Authent) .With(new YadGetResourceUploadUrlPostModel(fileFullPath, fileSize, hash?.HashSha256.Value, hash?.HashMd5.Value), out YadResponseModel <ResourceUploadUrlData, ResourceUploadUrlParams> itemInfo) .MakeRequestAsync().Result; var res = new AddFileResult { Path = fileFullPath, Success = itemInfo.Data.Status == "hardlinked" }; return(await Task.FromResult(res)); }