diff --git a/upload/fs.go b/upload/fs.go new file mode 100644 index 0000000000000000000000000000000000000000..4e936ea590a16dc7a50528ea2bccbec7b5057910 --- /dev/null +++ b/upload/fs.go @@ -0,0 +1,34 @@ +package upload + +import ( + "context" + "os" + "path/filepath" + + "git.autistici.org/ai3/tools/acmeserver/common" +) + +type FSStorage struct { + path string +} + +func newFS(config *FSConfig) (*FSStorage, error) { + return &FSStorage{ + path: config.Path, + }, nil +} + +func (s *FSStorage) Upload(_ context.Context, path string, creds *common.Credentials) error { + dir := filepath.Join(s.path, path) + if err := os.MkdirAll(dir, 0700); err != nil { + return err + } + + for _, b := range credsToBatch(dir, creds) { + if err := os.WriteFile(b.path, []byte(b.data), 0600); err != nil { + return err + } + } + + return nil +}