URL shortener and file dump for hashru.link
https://hashru.link
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
584 B
30 lines
584 B
package rushlink |
|
|
|
import ( |
|
"log" |
|
"net/http" |
|
|
|
"github.com/pkg/errors" |
|
) |
|
|
|
// FileUploadFileSystem is a HTTP filesystem handler |
|
type FileUploadFileSystem struct { |
|
fs http.FileSystem |
|
} |
|
|
|
// Open opens a file |
|
func (fs FileUploadFileSystem) Open(path string) (http.File, error) { |
|
log.Println(path) |
|
file, err := fs.fs.Open(path) |
|
if err != nil { |
|
return nil, errors.Wrap(err, "opening file") |
|
} |
|
stat, err := file.Stat() |
|
if err != nil { |
|
return nil, errors.Wrap(err, "file.Stat()") |
|
} |
|
if stat.IsDir() { |
|
return nil, errors.New("directory index not allowed") |
|
} |
|
return file, nil |
|
}
|
|
|