diff --git a/src/main/scala/gitbucket/core/controller/WikiController.scala b/src/main/scala/gitbucket/core/controller/WikiController.scala index aadd36c..d93292d 100644 --- a/src/main/scala/gitbucket/core/controller/WikiController.scala +++ b/src/main/scala/gitbucket/core/controller/WikiController.scala @@ -219,10 +219,13 @@ get("/:owner/:repository/wiki/_blob/*")(referrersOnly { repository => val path = multiParams("splat").head + using(Git.open(getWikiRepositoryDir(repository.owner, repository.name))){ git => + val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve("master")) - getFileContent(repository.owner, repository.name, path).map { bytes => - RawData(FileUtil.getContentType(path, bytes), bytes) - } getOrElse NotFound() + getPathObjectId(git, path, revCommit).map { objectId => + responseRawFile(git, objectId, path, repository) + } getOrElse NotFound() + } }) private def unique: Constraint = new Constraint(){ diff --git a/src/main/scala/gitbucket/core/service/WikiService.scala b/src/main/scala/gitbucket/core/service/WikiService.scala index 9de4b42..921db3f 100644 --- a/src/main/scala/gitbucket/core/service/WikiService.scala +++ b/src/main/scala/gitbucket/core/service/WikiService.scala @@ -76,22 +76,6 @@ } /** - * Returns the content of the specified file. - */ - def getFileContent(owner: String, repository: String, path: String): Option[Array[Byte]] = - using(Git.open(Directory.getWikiRepositoryDir(owner, repository))){ git => - if(!JGitUtil.isEmpty(git)){ - val index = path.lastIndexOf('/') - val parentPath = if(index < 0) "." else path.substring(0, index) - val fileName = if(index < 0) path else path.substring(index + 1) - - JGitUtil.getFileList(git, "master", parentPath).find(_.name == fileName).map { file => - git.getRepository.open(file.id).getBytes - } - } else None - } - - /** * Returns the list of wiki page names. */ def getWikiPageList(owner: String, repository: String): List[String] = {