gitea/modules/packages
Zettat123 0690cb076b
Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled ()
Fix 

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)
..
alpine Integrate alpine `noarch` packages into other architectures index ()
cargo Add Cargo package registry ()
chef Add Chef package registry ()
composer Add bin to Composer Metadata ()
conan Use ErrInvalidArgument in packages ()
conda Support compression for Actions logs ()
container Use docs.gitea.com instead of docs.gitea.io ()
cran Enable `unparam` linter ()
debian Support compression for Actions logs ()
goproxy Add Go package registry ()
helm Replace `interface{}` with `any` ()
maven Add support for different Maven POM encoding ()
npm Add support for npm bundleDependencies ()
nuget Support nuspec manifest download for nuget packages ()
pub Use docs.gitea.com instead of docs.gitea.io ()
pypi Implement FSFE REUSE for golang files ()
rpm Use new RPM constants ()
rubygems Enable more `revive` linter rules ()
swift Add Swift package registry ()
vagrant Implement FSFE REUSE for golang files ()
content_store.go Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled ()
hashed_buffer.go Close all hashed buffers ()
hashed_buffer_test.go Add Debian package registry ()
multi_hasher.go Implement FSFE REUSE for golang files ()
multi_hasher_test.go Replace fmt.Sprintf with hex.EncodeToString ()