فهرست منبع

Create dir first before opening data file of boltdb

Signed-off-by: Chun Chen <ramichen@tencent.com>
Chun Chen 9 سال پیش
والد
کامیت
f817826408
1فایلهای تغییر یافته به همراه6 افزوده شده و 0 حذف شده
  1. 6 0
      libnetwork/internal/kvstore/boltdb/boltdb.go

+ 6 - 0
libnetwork/internal/kvstore/boltdb/boltdb.go

@@ -4,6 +4,8 @@ import (
 	"bytes"
 	"encoding/binary"
 	"errors"
+	"os"
+	"path/filepath"
 	"sync/atomic"
 
 	"github.com/boltdb/bolt"
@@ -43,6 +45,10 @@ func New(endpoints []string, options *store.Config) (store.Store, error) {
 		return nil, ErrBoltBucketOptionMissing
 	}
 
+	dir, _ := filepath.Split(endpoints[0])
+	if err := os.MkdirAll(dir, 0750); err != nil {
+		return nil, err
+	}
 	db, err := bolt.Open(endpoints[0], 0644, nil)
 	if err != nil {
 		return nil, err