64 lines
2 KiB
Markdown
64 lines
2 KiB
Markdown
---
|
|
title: io
|
|
---
|
|
# Service: `io`
|
|
|
|
The `io` service provides a standardized interface for interacting with different storage backends, such as the local disk, S3, or SFTP.
|
|
|
|
## Types
|
|
|
|
### `type Medium`
|
|
|
|
`Medium` defines the standard interface for a storage backend.
|
|
|
|
```go
|
|
type Medium interface {
|
|
// Read retrieves the content of a file as a string.
|
|
Read(path string) (string, error)
|
|
|
|
// Write saves the given content to a file, overwriting it if it exists.
|
|
Write(path, content string) error
|
|
|
|
// EnsureDir makes sure a directory exists, creating it if necessary.
|
|
EnsureDir(path string) error
|
|
|
|
// IsFile checks if a path exists and is a regular file.
|
|
IsFile(path string) bool
|
|
|
|
// FileGet is a convenience function that reads a file from the medium.
|
|
FileGet(path string) (string, error)
|
|
|
|
// FileSet is a convenience function that writes a file to the medium.
|
|
FileSet(path, content string) error
|
|
}
|
|
```
|
|
|
|
### `type MockMedium`
|
|
|
|
`MockMedium` implements the `Medium` interface for testing purposes.
|
|
|
|
```go
|
|
type MockMedium struct {
|
|
Files map[string]string
|
|
Dirs map[string]bool
|
|
}
|
|
```
|
|
|
|
#### Methods
|
|
|
|
- `EnsureDir(path string) error`: Mocks creating a directory.
|
|
- `FileGet(path string) (string, error)`: Mocks reading a file.
|
|
- `FileSet(path, content string) error`: Mocks writing a file.
|
|
- `IsFile(path string) bool`: Mocks checking if a path is a file.
|
|
- `Read(path string) (string, error)`: Mocks reading a file.
|
|
- `Write(path, content string) error`: Mocks writing a file.
|
|
|
|
## Functions
|
|
|
|
- `Copy(sourceMedium Medium, sourcePath string, destMedium Medium, destPath string) error`: Copies a file from a source medium to a destination medium.
|
|
- `EnsureDir(m Medium, path string) error`: Ensures a directory exists on the given medium.
|
|
- `IsFile(m Medium, path string) bool`: Checks if a path is a file on the given medium.
|
|
- `Read(m Medium, path string) (string, error)`: Retrieves the content of a file from the given medium.
|
|
- `Write(m Medium, path, content string) error`: Saves content to a file on the given medium.
|
|
|
|
Would you like to see some examples of how to use this service?
|