posix: make temp dir if not already exists

This commit is contained in:
Ben McClelland
2023-05-30 21:45:51 -07:00
parent 981894aef2
commit b8cb3f774d
2 changed files with 8 additions and 0 deletions
+4
View File
@@ -32,6 +32,10 @@ type tmpfile struct {
func openTmpFile(dir, bucket, obj string, size int64) (*tmpfile, error) {
// Create a temp file for upload while in progress (see link comments below).
err := os.MkdirAll(dir, 0700)
if err != nil {
return nil, fmt.Errorf("make temp dir: %w", err)
}
f, err := os.CreateTemp(dir,
fmt.Sprintf("%x.", sha256.Sum256([]byte(obj))))
if err != nil {
+4
View File
@@ -47,6 +47,10 @@ func openTmpFile(dir, bucket, obj string, size int64) (*tmpfile, error) {
fd, err := unix.Open(dir, unix.O_RDWR|unix.O_TMPFILE|unix.O_CLOEXEC, 0666)
if err != nil {
// O_TMPFILE not supported, try fallback
err := os.MkdirAll(dir, 0700)
if err != nil {
return nil, fmt.Errorf("make temp dir: %w", err)
}
f, err := os.CreateTemp(dir,
fmt.Sprintf("%x.", sha256.Sum256([]byte(obj))))
if err != nil {