diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 13:18:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 13:18:24 +0000 |
commit | 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c (patch) | |
tree | 4dcc884cf6d81db44adae4aa99f8ec1233a41f55 /lib/api/files.rb | |
parent | 744144d28e3e7fddc117924fef88de5d9674fe4c (diff) | |
download | gitlab-ce-0653e08efd039a5905f3fa4f6e9cef9f5d2f799c.tar.gz |
Add latest changes from gitlab-org/gitlab@14-3-stable-eev14.3.0-rc42
Diffstat (limited to 'lib/api/files.rb')
-rw-r--r-- | lib/api/files.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/api/files.rb b/lib/api/files.rb index f3de7fbe96b..9d2b7cce837 100644 --- a/lib/api/files.rb +++ b/lib/api/files.rb @@ -35,10 +35,9 @@ module API not_found!('Commit') unless @commit @repo = user_project.repository - @blob = @repo.blob_at(@commit.sha, params[:file_path]) + @blob = @repo.blob_at(@commit.sha, params[:file_path], limit: Gitlab::Git::Blob::LFS_POINTER_MAX_SIZE) not_found!('File') unless @blob - @blob.load_all_data! end def commit_response(attrs) @@ -48,13 +47,21 @@ module API } end + def content_sha + Rails.cache.fetch("blob_content_sha256:#{user_project.full_path}:#{@blob.id}") do + @blob.load_all_data! + + Digest::SHA256.hexdigest(@blob.data) + end + end + def blob_data { file_name: @blob.name, file_path: @blob.path, size: @blob.size, encoding: "base64", - content_sha256: Digest::SHA256.hexdigest(@blob.data), + content_sha256: content_sha, ref: params[:ref], blob_id: @blob.id, commit_id: @commit.id, @@ -154,6 +161,8 @@ module API get ":id/repository/files/:file_path", requirements: FILE_ENDPOINT_REQUIREMENTS do assign_file_vars! + @blob.load_all_data! + data = blob_data set_http_headers(data) |