gitea/routers/web/repo
Zettat123 0690cb076b
Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled (#32365)
Fix #28121

I did some tests and found that the `missing signature key` error is
caused by an incorrect `Content-Type` header. Gitea correctly sets the
`Content-Type` header when serving files.

348d1d0f32/routers/api/packages/container/container.go (L712-L717)
However, when `SERVE_DIRECT` is enabled, the `Content-Type` header may
be set to an incorrect value by the storage service. To fix this issue,
we can use query parameters to override response header values.

https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
<img width="600px"
src="https://github.com/user-attachments/assets/f2ff90f0-f1df-46f9-9680-b8120222c555"
/>

In this PR, I introduced a new parameter to the `URL` method to support
additional parameters.

```
URL(path, name string, reqParams url.Values) (*url.URL, error)
```

---

Most S3-like services support specifying the content type when storing
objects. However, Gitea always use `application/octet-stream`.
Therefore, I believe we also need to improve the `Save` method to
support storing objects with the correct content type.

b7fb20e73e/modules/storage/minio.go (L214-L221)
2024-10-31 15:28:25 +00:00
..
actions Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled (#32365) 2024-10-31 15:28:25 +00:00
setting Make admins adhere to branch protection rules (#32248) 2024-10-23 12:39:43 +08:00
activity.go refactor: remove redundant err declarations (#32381) 2024-10-30 19:36:24 +00:00
attachment.go Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled (#32365) 2024-10-31 15:28:25 +00:00
blame.go Improve detecting empty files (#31332) 2024-06-13 01:06:46 +00:00
branch.go Support repo license (#24872) 2024-10-01 15:25:08 -04:00
cherry_pick.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
code_frequency.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
commit.go Support repo license (#24872) 2024-10-01 15:25:08 -04:00
compare.go Hide the "Details" link of commit status when the user cannot access actions (#30156) 2024-07-28 23:11:40 +08:00
contributors.go Fix Activity Page Contributors dropdown (#31264) 2024-06-06 10:28:33 +08:00
download.go Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled (#32365) 2024-10-31 15:28:25 +00:00
editor.go Notify the user when the file path contains leading or trailing spaces and fix the error message for invalid file names. (#31507) 2024-09-24 19:06:52 +00:00
editor_test.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
find.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
fork.go Use db.ListOptionsAll instead of db.ListOptions{ListAll: true} (#29995) 2024-03-22 13:53:52 +01:00
githttp.go Fix wrong last modify time (#32102) 2024-09-21 21:56:25 +00:00
githttp_test.go Fix http protocol auth (#27875) 2023-11-02 22:14:33 +08:00
helper.go Add option to filter board cards by labels and assignees (#31999) 2024-09-12 03:53:40 +00:00
issue.go Fix Bug in Issue/pulls list (#32081) 2024-09-24 01:09:57 +08:00
issue_content_history.go Remove unnecessary inline style for tab-size (#31224) 2024-06-03 17:21:45 +00:00
issue_dependency.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
issue_label.go Refactor label.IsArchived() (#29750) 2024-03-13 07:04:07 +01:00
issue_label_test.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
issue_lock.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
issue_pin.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
issue_stopwatch.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
issue_suggestions.go Fix suggestions for issues (#32380) 2024-10-30 20:06:36 +00:00
issue_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
issue_timetrack.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
issue_watch.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
middlewares.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
migrate.go Fix javascript error when an anonymous user visiting migration page (#32144) 2024-10-02 04:37:16 +00:00
milestone.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
packages.go Remove AddParamIfExist(AddParam) (#29841) 2024-03-16 12:07:56 +00:00
patch.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
projects.go Add option to filter board cards by labels and assignees (#31999) 2024-09-12 03:53:40 +00:00
projects_test.go Refactor names (#31405) 2024-06-19 06:32:45 +08:00
pull.go Allow maintainers to view and edit files of private repos when "Allow maintainers to edit" is enabled (#32215) 2024-10-11 19:08:19 +00:00
pull_review.go Prevent allow/reject reviews on merged/closed PRs (#30686) 2024-04-27 11:55:03 +00:00
pull_review_test.go Fix template error when comment review doesn't exist (#29888) 2024-03-19 04:19:48 +00:00
recent_commits.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
release.go Support repo license (#24872) 2024-10-01 15:25:08 -04:00
release_test.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
render.go Fix rendered wiki page link (#31398) 2024-06-18 03:09:20 +00:00
repo.go Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled (#32365) 2024-10-31 15:28:25 +00:00
search.go Improve grep search (#30843) 2024-05-03 09:13:48 +00:00
search_test.go Improve grep search (#30843) 2024-05-03 09:13:48 +00:00
topic.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
treelist.go Move context from modules to services (#29440) 2024-02-27 08:12:22 +01:00
view.go refactor: remove redundant err declarations (#32381) 2024-10-30 19:36:24 +00:00
view_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
wiki.go Fix raw wiki links (#31825) 2024-08-16 20:40:51 +08:00
wiki_test.go Fix raw wiki links (#31825) 2024-08-16 20:40:51 +08:00