gitea/modules/packages
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
..
alpine Integrate alpine `noarch` packages into other architectures index (#29137) 2024-02-25 15:10:55 +00:00
cargo Add Cargo package registry (#21888) 2023-02-05 18:12:31 +08:00
chef Add Chef package registry (#22554) 2023-02-06 09:49:21 +08:00
composer Add bin to Composer Metadata (#32099) 2024-09-21 22:42:17 +00:00
conan Use ErrInvalidArgument in packages (#22268) 2022-12-31 12:49:37 +01:00
conda Support compression for Actions logs (#31761) 2024-08-09 10:10:30 +08:00
container Use docs.gitea.com instead of docs.gitea.io (#26739) 2023-08-27 11:59:12 +00:00
cran Enable `unparam` linter (#31277) 2024-06-11 18:47:45 +00:00
debian Support compression for Actions logs (#31761) 2024-08-09 10:10:30 +08:00
goproxy Add Go package registry (#24687) 2023-05-14 23:38:40 +08:00
helm Replace `interface{}` with `any` (#25686) 2023-07-04 18:36:08 +00:00
maven Add support for different Maven POM encoding (#25873) 2023-07-14 09:39:15 +00:00
npm Add support for npm bundleDependencies (#30751) 2024-04-29 16:19:06 +08:00
nuget Support nuspec manifest download for nuget packages (#28921) 2024-04-17 15:30:41 +00:00
pub Use docs.gitea.com instead of docs.gitea.io (#26739) 2023-08-27 11:59:12 +00:00
pypi Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
rpm Use new RPM constants (#28931) 2024-01-25 21:40:24 +00:00
rubygems Enable more `revive` linter rules (#30608) 2024-04-22 11:48:42 +00:00
swift Add Swift package registry (#22404) 2023-03-13 15:28:39 -05:00
vagrant Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
content_store.go Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled (#32365) 2024-10-31 15:28:25 +00:00
hashed_buffer.go Close all hashed buffers (#27787) 2023-10-25 21:24:24 +02:00
hashed_buffer_test.go Add Debian package registry (#24426) 2023-05-02 12:31:35 -04:00
multi_hasher.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
multi_hasher_test.go Replace fmt.Sprintf with hex.EncodeToString (#21960) 2022-11-28 11:19:18 +00:00