Documentation ¶
Index ¶
- Constants
- func EncodeAuthority(rawAuthority string) string
- func EncodeURI(scheme, username, hostport, path string) string
- func EncodeUserInfo(rawUserInfo string) string
- func EnsureLeadingSlash(dir string) string
- func EnsureTrailingSlash(dir string) string
- func GetFileURI(f vfs.File) string
- func GetLocationURI(l vfs.Location) string
- func PathToURI(p string) (string, error)
- func Ptr[T any](value T) *T
- func RemoveLeadingSlash(path string) string
- func RemoveTrailingSlash(path string) string
- func SeekTo(length, position, offset int64, whence int) (int64, error)
- func TouchCopy(writer io.Writer, reader io.Reader) error
- func TouchCopyBuffered(writer io.Writer, reader io.Reader, bufferSize int) error
- func UpdateLastModifiedByMoving(file vfs.File) error
- func ValidateAbsoluteFilePath(name string) error
- func ValidateAbsoluteLocationPath(name string) error
- func ValidatePrefix(prefix string) error
- func ValidateRelativeFilePath(name string) error
- func ValidateRelativeLocationPath(name string) error
- func WrapCloseError(err error) error
- func WrapReadError(err error) error
- func WrapSeekError(err error) error
- func WrapWriteError(err error) error
- type Authority
- type UserInfo
Constants ¶
const ( // ErrBadAbsFilePath constant is returned when a file path is not absolute ErrBadAbsFilePath = "absolute file path is invalid - must include leading slash and may not include trailing slash" // ErrBadRelFilePath constant is returned when a file path is not relative ErrBadRelFilePath = "relative file path is invalid - may not include leading or trailing slashes" // ErrBadAbsLocationPath constant is returned when a file path is not absolute ErrBadAbsLocationPath = "absolute location path is invalid - must include leading and trailing slashes" // ErrBadRelLocationPath constant is returned when a file path is not relative ErrBadRelLocationPath = "relative location path is invalid - may not include leading slash but must include trailing slash" // ErrBadPrefix constant is returned when a prefix is not relative or ends in / or is empty ErrBadPrefix = "prefix is invalid - may not include leading or trailing slashes and may not be empty" // TouchCopyMinBufferSize min buffer size used in TouchCopyBuffered in bytes TouchCopyMinBufferSize = 262144 )
Variables ¶
This section is empty.
Functions ¶
func EncodeAuthority ¶ added in v6.15.0
EncodeAuthority takes an unencoded URI authority string and encodes it
func EncodeUserInfo ¶ added in v6.15.0
EncodeUserInfo takes an unencoded URI authority userinfo string and encodes it
func EnsureLeadingSlash ¶
EnsureLeadingSlash is like EnsureTrailingSlash except that it adds the leading slash if needed.
func EnsureTrailingSlash ¶
EnsureTrailingSlash is like AddTrailingSlash but will only ever use / since it's use for web uri's, never a Windows OS path.
func GetLocationURI ¶
func GetLocationURI(l vfs.Location) string
GetLocationURI returns a Location URI
func PathToURI ¶ added in v6.1.0
PathToURI takes a relative or absolute path and returns an OS URI. We assume non-scheme path is an OS File or Location. We assume volume(URI authority) is empty. We assume relative paths are relative to the pwd (program's working directory)
/absolute/path/to/file.txt : file:///absolute/path/to/file.txt /some/absolute/path/ : file:///absolute/path/ relative/path/to/file.txt : file:///absolute/path/with/relative/path/to/file.txt relative/path/ : file:///absolute/path/with/relative/path/
func RemoveLeadingSlash ¶
RemoveLeadingSlash removes leading slash, if any
func RemoveTrailingSlash ¶
RemoveTrailingSlash removes trailing slash, if any
func SeekTo ¶ added in v6.13.0
SeekTo is a helper function for Seek. It takes the current position, offset, whence, and length of the file and returns the new position. It also checks for invalid offsets and returns an error if one is found.
func TouchCopy ¶
TouchCopy is a wrapper around io.Copy which ensures that even empty source files (reader) will get written as an empty file. It guarantees a Write() call on the target file. Deprecated: Use TouchCopyBuffer Instead
func TouchCopyBuffered ¶
TouchCopyBuffered is a wrapper around io.CopyBuffer which ensures that even empty source files (reader) will get written as an empty file. It guarantees a Write() call on the target file. bufferSize is in bytes and if is less than TouchCopyMinBufferSize will result in a buffer of size TouchCopyMinBufferSize bytes. If bufferSize is > TouchCopyMinBufferSize it will result in a buffer of size bufferSize bytes
func UpdateLastModifiedByMoving ¶
func UpdateLastModifiedByMoving(file vfs.File) error
UpdateLastModifiedByMoving is used by some backends' Touch() method when a file already exists.
func ValidateAbsoluteFilePath ¶
ValidateAbsoluteFilePath ensures that a file path has a leading slash but not a trailing slash
func ValidateAbsoluteLocationPath ¶
ValidateAbsoluteLocationPath ensure that a file path has both leading and trailing slashes
func ValidatePrefix ¶ added in v6.8.0
ValidatePrefix ensures that a prefix path has neither leading nor trailing slashes may not be empty but unlike relative file path, *may* be simply "."
func ValidateRelativeFilePath ¶
ValidateRelativeFilePath ensures that a file path has neither leading nor trailing slashes
func ValidateRelativeLocationPath ¶
ValidateRelativeLocationPath ensure that a file path has no leading slash but has a trailing slash
func WrapCloseError ¶ added in v6.13.0
WrapCloseError returns a wrapped close error
func WrapReadError ¶ added in v6.13.0
WrapReadError returns a wrapped read error
func WrapSeekError ¶ added in v6.13.0
WrapSeekError returns a wrapped seek error
func WrapWriteError ¶ added in v6.13.0
WrapWriteError returns a wrapped write error
Types ¶
type Authority ¶
type Authority struct {
// contains filtered or unexported fields
}
Authority represents host, port and userinfo (user/pass) in a URI
func NewAuthority ¶
NewAuthority initializes Authority struct by parsing authority string.
func (Authority) HostPortStr ¶ added in v6.8.0
HostPortStr returns a concatenated string of host and port from authority, separated by a colon, ie "host.com:1234"
func (Authority) String ¶
String() returns a string representation of authority. It does not include password per https://tools.ietf.org/html/rfc3986#section-3.2.1
Applications should not render as clear text any data after the first colon (":") character found within a userinfo subcomponent unless the data after the colon is the empty string (indicating no password).