private async Task DownloadInternal(string fid, Action <Stream> writer) { ConnectionAddress connectionAddress; if (_option.RestOption.EnableReadJwt) { var lookupRequest = new LookupRequest(fid, true); var lookupResponse = await _executer.ExecuteAsync(lookupRequest); var url = lookupResponse.Locations.FirstOrDefault().Url; connectionAddress = new ConnectionAddress(url); } else { var connection = _connectionManager.GetVolumeConnectionByVolumeIdOrFid(fid); connectionAddress = connection.ConnectionAddress; } await Task.Factory.StartNew(() => { var client = GetDownloadClient(connectionAddress); IRestRequest request = new RestRequest("/{fid}"); request.AddUrlSegment("fid", fid); request.ResponseWriter = writer; var response = client.DownloadData(request); }); }
/// <summary>根据Fid删除文件 /// </summary> /// <param name="fid">文件Id</param> /// <returns><see cref="Seaweedfs.Client.Rest.DeleteFileResponse"/></returns> public async Task <DeleteFileResponse> DeleteFile(string fid) { if (_option.RestOption.EnableJwt) { var lookupRequest = new LookupRequest(fid); await _seaweedfsExecuter.ExecuteAsync(lookupRequest); } var request = new DeleteFileRequest(fid); return(await _seaweedfsExecuter.ExecuteAsync(request)); }