aboutsummaryrefslogtreecommitdiff
path: root/src/net/http
diff options
context:
space:
mode:
authorAlex Studer <alex@studer.dev>2021-10-20 19:18:03 +0000
committerGopher Robot <gobot@golang.org>2022-08-26 18:05:21 +0000
commitafd792feb567f0848ddc05f6a90a7b7672fe4974 (patch)
treed8f600630ecaef28bdb6de101fb758b3d7ec4ca3 /src/net/http
parent4d13aabdf62a15d19a6f41a781aa7e85f02f3f26 (diff)
downloadgo-afd792feb567f0848ddc05f6a90a7b7672fe4974.tar.xz
net/http: mention io.Seeker requirement in FS documentation
Both FileServer and NewFileTransport can try to seek a file, specifically when MIME type sniffing is performed. This can be somewhat surprising to an implementer of an fs.FS, as their filesystem will appear to work until a user tries to access a file with an unrecognized extension (which requires type sniffing and therefore seeking). With FileServer, this results in a "seeker can't seek" message, which is not very clear for the developer. The issue arises because fs.FS does not require Seek, while http.FileSystem does. Therefore, this change adds a line to the documentation of net/http's adapter function mentioning the requirement. Change-Id: Ieb955b7a7f34e2be39dd696cb712513c70100b3a GitHub-Last-Rev: fddccdae36e04fcb87d78b3b03fa4658dbb7d83d GitHub-Pull-Request: golang/go#48781 Reviewed-on: https://go-review.googlesource.com/c/go/+/353874 Reviewed-by: Damien Neil <dneil@google.com> Auto-Submit: Damien Neil <dneil@google.com> Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/net/http')
-rw-r--r--src/net/http/fs.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/net/http/fs.go b/src/net/http/fs.go
index 4f144ebad2..87caeb7e90 100644
--- a/src/net/http/fs.go
+++ b/src/net/http/fs.go
@@ -818,6 +818,7 @@ func (f ioFile) Readdir(count int) ([]fs.FileInfo, error) {
// FS converts fsys to a FileSystem implementation,
// for use with FileServer and NewFileTransport.
+// The files provided by fsys must implement io.Seeker.
func FS(fsys fs.FS) FileSystem {
return ioFS{fsys}
}