mirror of
https://github.com/minio/minio.git
synced 2025-11-09 21:49:46 -05:00
Remove deprecated io/ioutil (#15707)
This commit is contained in:
@@ -23,7 +23,7 @@ import (
|
||||
"crypto/x509"
|
||||
"encoding/pem"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"github.com/minio/pkg/env"
|
||||
)
|
||||
@@ -37,7 +37,7 @@ const EnvCertPassword = "MINIO_CERT_PASSWD"
|
||||
func ParsePublicCertFile(certFile string) (x509Certs []*x509.Certificate, err error) {
|
||||
// Read certificate file.
|
||||
var data []byte
|
||||
if data, err = ioutil.ReadFile(certFile); err != nil {
|
||||
if data, err = os.ReadFile(certFile); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -71,11 +71,11 @@ func ParsePublicCertFile(certFile string) (x509Certs []*x509.Certificate, err er
|
||||
// from the provided paths. The private key may be encrypted and is
|
||||
// decrypted using the ENV_VAR: MINIO_CERT_PASSWD.
|
||||
func LoadX509KeyPair(certFile, keyFile string) (tls.Certificate, error) {
|
||||
certPEMBlock, err := ioutil.ReadFile(certFile)
|
||||
certPEMBlock, err := os.ReadFile(certFile)
|
||||
if err != nil {
|
||||
return tls.Certificate{}, ErrSSLUnexpectedError(err)
|
||||
}
|
||||
keyPEMBlock, err := ioutil.ReadFile(keyFile)
|
||||
keyPEMBlock, err := os.ReadFile(keyFile)
|
||||
if err != nil {
|
||||
return tls.Certificate{}, ErrSSLUnexpectedError(err)
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
@@ -26,7 +25,7 @@ import (
|
||||
func createTempFile(prefix, content string) (tempFile string, err error) {
|
||||
var tmpfile *os.File
|
||||
|
||||
if tmpfile, err = ioutil.TempFile("", prefix); err != nil {
|
||||
if tmpfile, err = os.CreateTemp("", prefix); err != nil {
|
||||
return tempFile, err
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@ import (
|
||||
"bytes"
|
||||
"encoding/hex"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
|
||||
"github.com/minio/minio/internal/kms"
|
||||
@@ -64,7 +63,7 @@ func TestEncryptDecrypt(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("Test %d: failed to encrypt stream: %v", i, err)
|
||||
}
|
||||
data, err := ioutil.ReadAll(ciphertext)
|
||||
data, err := io.ReadAll(ciphertext)
|
||||
if err != nil {
|
||||
t.Fatalf("Test %d: failed to encrypt stream: %v", i, err)
|
||||
}
|
||||
@@ -73,7 +72,7 @@ func TestEncryptDecrypt(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("Test %d: failed to decrypt stream: %v", i, err)
|
||||
}
|
||||
data, err = ioutil.ReadAll(plaintext)
|
||||
data, err = io.ReadAll(plaintext)
|
||||
if err != nil {
|
||||
t.Fatalf("Test %d: failed to decrypt stream: %v", i, err)
|
||||
}
|
||||
@@ -106,7 +105,7 @@ func BenchmarkEncrypt(b *testing.B) {
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
if _, err = io.Copy(ioutil.Discard, ciphertext); err != nil {
|
||||
if _, err = io.Copy(io.Discard, ciphertext); err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
plaintext.Reset(data)
|
||||
|
||||
@@ -21,7 +21,6 @@ import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/minio/minio/internal/config"
|
||||
@@ -194,7 +193,7 @@ func (o *Opa) IsAllowed(args iampolicy.Args) (bool, error) {
|
||||
defer o.args.CloseRespFn(resp.Body)
|
||||
|
||||
// Read the body to be saved later.
|
||||
opaRespBytes, err := ioutil.ReadAll(resp.Body)
|
||||
opaRespBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/minio/minio/internal/config"
|
||||
@@ -188,7 +187,7 @@ func (o *AuthZPlugin) IsAllowed(args iampolicy.Args) (bool, error) {
|
||||
defer o.args.CloseRespFn(resp.Body)
|
||||
|
||||
// Read the body to be saved later.
|
||||
opaRespBytes, err := ioutil.ReadAll(resp.Body)
|
||||
opaRespBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
@@ -62,7 +61,7 @@ func (c Config) Post(reqURL string, payload interface{}) (string, error) {
|
||||
}
|
||||
defer xhttp.DrainBody(resp.Body)
|
||||
|
||||
respBytes, err := ioutil.ReadAll(io.LimitReader(resp.Body, respBodyLimit))
|
||||
respBytes, err := io.ReadAll(io.LimitReader(resp.Body, respBodyLimit))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ package dsync
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"sync"
|
||||
@@ -38,7 +38,7 @@ var (
|
||||
)
|
||||
|
||||
func getLockArgs(r *http.Request) (args LockArgs, err error) {
|
||||
buf, err := ioutil.ReadAll(r.Body)
|
||||
buf, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
return args, err
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ package etag
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -139,7 +138,7 @@ var readerTests = []struct { // Reference values computed by: echo <content> | m
|
||||
func TestReader(t *testing.T) {
|
||||
for i, test := range readerTests {
|
||||
reader := NewReader(strings.NewReader(test.Content), test.ETag)
|
||||
if _, err := io.Copy(ioutil.Discard, reader); err != nil {
|
||||
if _, err := io.Copy(io.Discard, reader); err != nil {
|
||||
t.Fatalf("Test %d: read failed: %v", i, err)
|
||||
}
|
||||
if ETag := reader.ETag(); !Equal(ETag, test.ETag) {
|
||||
|
||||
@@ -24,7 +24,6 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
@@ -449,7 +448,7 @@ func (c *esClientV7) createIndex(args ElasticsearchArgs) error {
|
||||
err := fmt.Errorf("Create index err: %s", res.String())
|
||||
return err
|
||||
}
|
||||
io.Copy(ioutil.Discard, resp.Body)
|
||||
io.Copy(io.Discard, resp.Body)
|
||||
return nil
|
||||
}
|
||||
return nil
|
||||
@@ -462,7 +461,7 @@ func (c *esClientV7) ping(ctx context.Context, _ ElasticsearchArgs) (bool, error
|
||||
if err != nil {
|
||||
return false, errNotConnected
|
||||
}
|
||||
io.Copy(ioutil.Discard, resp.Body)
|
||||
io.Copy(io.Discard, resp.Body)
|
||||
resp.Body.Close()
|
||||
return !resp.IsError(), nil
|
||||
}
|
||||
@@ -476,7 +475,7 @@ func (c *esClientV7) entryExists(ctx context.Context, index string, key string)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
io.Copy(ioutil.Discard, res.Body)
|
||||
io.Copy(io.Discard, res.Body)
|
||||
res.Body.Close()
|
||||
return !res.IsError(), nil
|
||||
}
|
||||
@@ -493,7 +492,7 @@ func (c *esClientV7) removeEntry(ctx context.Context, index string, key string)
|
||||
return err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
defer io.Copy(ioutil.Discard, res.Body)
|
||||
defer io.Copy(io.Discard, res.Body)
|
||||
if res.IsError() {
|
||||
return fmt.Errorf("Delete err: %s", res.String())
|
||||
}
|
||||
@@ -522,7 +521,7 @@ func (c *esClientV7) updateEntry(ctx context.Context, index string, key string,
|
||||
return err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
defer io.Copy(ioutil.Discard, res.Body)
|
||||
defer io.Copy(io.Discard, res.Body)
|
||||
if res.IsError() {
|
||||
return fmt.Errorf("Update err: %s", res.String())
|
||||
}
|
||||
@@ -549,7 +548,7 @@ func (c *esClientV7) addEntry(ctx context.Context, index string, eventData event
|
||||
return err
|
||||
}
|
||||
defer res.Body.Close()
|
||||
defer io.Copy(ioutil.Discard, res.Body)
|
||||
defer io.Copy(io.Discard, res.Body)
|
||||
if res.IsError() {
|
||||
return fmt.Errorf("Add err: %s", res.String())
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ package target
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -87,7 +86,7 @@ func (store *QueueStore) write(key string, e event.Event) error {
|
||||
}
|
||||
|
||||
path := filepath.Join(store.directory, key+eventExt)
|
||||
if err := ioutil.WriteFile(path, eventData, os.FileMode(0o770)); err != nil {
|
||||
if err := os.WriteFile(path, eventData, os.FileMode(0o770)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -124,7 +123,7 @@ func (store *QueueStore) Get(key string) (event event.Event, err error) {
|
||||
}(store)
|
||||
|
||||
var eventData []byte
|
||||
eventData, err = ioutil.ReadFile(filepath.Join(store.directory, key+eventExt))
|
||||
eventData, err = os.ReadFile(filepath.Join(store.directory, key+eventExt))
|
||||
if err != nil {
|
||||
return event, err
|
||||
}
|
||||
@@ -179,14 +178,22 @@ func (store *QueueStore) List() ([]string, error) {
|
||||
// list lock less.
|
||||
func (store *QueueStore) list() ([]string, error) {
|
||||
var names []string
|
||||
files, err := ioutil.ReadDir(store.directory)
|
||||
files, err := os.ReadDir(store.directory)
|
||||
if err != nil {
|
||||
return names, err
|
||||
}
|
||||
|
||||
// Sort the dentries.
|
||||
sort.Slice(files, func(i, j int) bool {
|
||||
return files[i].ModTime().Before(files[j].ModTime())
|
||||
ii, err := files[i].Info()
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
ji, err := files[j].Info()
|
||||
if err != nil {
|
||||
return true
|
||||
}
|
||||
return ii.ModTime().Before(ji.ModTime())
|
||||
})
|
||||
|
||||
for _, file := range files {
|
||||
|
||||
@@ -25,7 +25,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
@@ -135,7 +134,7 @@ func (target *WebhookTarget) IsActive() (bool, error) {
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
io.Copy(ioutil.Discard, resp.Body)
|
||||
io.Copy(io.Discard, resp.Body)
|
||||
resp.Body.Close()
|
||||
// No network failure i.e response from the target means its up
|
||||
return true, nil
|
||||
@@ -194,7 +193,7 @@ func (target *WebhookTarget) send(eventData event.Event) error {
|
||||
return err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
io.Copy(ioutil.Discard, resp.Body)
|
||||
io.Copy(io.Discard, resp.Body)
|
||||
|
||||
if resp.StatusCode < 200 || resp.StatusCode > 299 {
|
||||
target.Close()
|
||||
|
||||
@@ -22,7 +22,6 @@ import (
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@@ -32,7 +31,7 @@ func TestHashReaderHelperMethods(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err = io.Copy(ioutil.Discard, r)
|
||||
_, err = io.Copy(io.Discard, r)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -193,7 +192,7 @@ func TestHashReaderVerification(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("Test %q: Initializing reader failed %s", testCase.desc, err)
|
||||
}
|
||||
_, err = io.Copy(ioutil.Discard, r)
|
||||
_, err = io.Copy(io.Discard, r)
|
||||
if err != nil {
|
||||
if err.Error() != testCase.err.Error() {
|
||||
t.Errorf("Test %q: Expected error %s, got error %s", testCase.desc, testCase.err, err)
|
||||
|
||||
@@ -19,7 +19,6 @@ package http
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
)
|
||||
|
||||
// DrainBody close non nil response with any response Body.
|
||||
@@ -38,6 +37,6 @@ func DrainBody(respBody io.ReadCloser) {
|
||||
// the same connection for future uses.
|
||||
// - http://stackoverflow.com/a/17961593/4465767
|
||||
defer respBody.Close()
|
||||
io.Copy(ioutil.Discard, respBody)
|
||||
io.Copy(io.Discard, respBody)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,16 +21,16 @@ import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"runtime/pprof"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
humanize "github.com/dustin/go-humanize"
|
||||
"github.com/dustin/go-humanize"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -154,7 +154,7 @@ func (srv *Server) Shutdown() error {
|
||||
select {
|
||||
case <-shutdownTimer.C:
|
||||
// Write all running goroutines.
|
||||
tmp, err := ioutil.TempFile("", "minio-goroutines-*.txt")
|
||||
tmp, err := os.CreateTemp("", "minio-goroutines-*.txt")
|
||||
if err == nil {
|
||||
_ = pprof.Lookup("goroutine").WriteTo(tmp, 1)
|
||||
tmp.Close()
|
||||
|
||||
@@ -21,7 +21,6 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io"
|
||||
goioutil "io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -63,7 +62,7 @@ func TestDeadlineWriter(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCloseOnWriter(t *testing.T) {
|
||||
writer := WriteOnClose(goioutil.Discard)
|
||||
writer := WriteOnClose(io.Discard)
|
||||
if writer.HasWritten() {
|
||||
t.Error("WriteOnCloser must not be marked as HasWritten")
|
||||
}
|
||||
@@ -72,7 +71,7 @@ func TestCloseOnWriter(t *testing.T) {
|
||||
t.Error("WriteOnCloser must be marked as HasWritten")
|
||||
}
|
||||
|
||||
writer = WriteOnClose(goioutil.Discard)
|
||||
writer = WriteOnClose(io.Discard)
|
||||
writer.Close()
|
||||
if !writer.HasWritten() {
|
||||
t.Error("WriteOnCloser must be marked as HasWritten")
|
||||
@@ -81,7 +80,7 @@ func TestCloseOnWriter(t *testing.T) {
|
||||
|
||||
// Test for AppendFile.
|
||||
func TestAppendFile(t *testing.T) {
|
||||
f, err := goioutil.TempFile("", "")
|
||||
f, err := os.CreateTemp("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -90,7 +89,7 @@ func TestAppendFile(t *testing.T) {
|
||||
f.WriteString("aaaaaaaaaa")
|
||||
f.Close()
|
||||
|
||||
f, err = goioutil.TempFile("", "")
|
||||
f, err = os.CreateTemp("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -103,7 +102,7 @@ func TestAppendFile(t *testing.T) {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
b, err := goioutil.ReadFile(name1)
|
||||
b, err := os.ReadFile(name1)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
@@ -130,7 +129,7 @@ func TestSkipReader(t *testing.T) {
|
||||
}
|
||||
for i, testCase := range testCases {
|
||||
r := NewSkipReader(testCase.src, testCase.skipLen)
|
||||
b, err := goioutil.ReadAll(r)
|
||||
b, err := io.ReadAll(r)
|
||||
if err != nil {
|
||||
t.Errorf("Case %d: Unexpected err %v", i, err)
|
||||
}
|
||||
@@ -141,7 +140,7 @@ func TestSkipReader(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestSameFile(t *testing.T) {
|
||||
f, err := goioutil.TempFile("", "")
|
||||
f, err := os.CreateTemp("", "")
|
||||
if err != nil {
|
||||
t.Errorf("Error creating tmp file: %v", err)
|
||||
}
|
||||
@@ -159,7 +158,7 @@ func TestSameFile(t *testing.T) {
|
||||
if !SameFile(fi1, fi2) {
|
||||
t.Fatal("Expected the files to be same")
|
||||
}
|
||||
if err = goioutil.WriteFile(tmpFile, []byte("aaa"), 0o644); err != nil {
|
||||
if err = os.WriteFile(tmpFile, []byte("aaa"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fi2, err = os.Stat(tmpFile)
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
package lock
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -26,7 +25,7 @@ import (
|
||||
|
||||
// Test lock fails.
|
||||
func TestLockFail(t *testing.T) {
|
||||
f, err := ioutil.TempFile("", "lock")
|
||||
f, err := os.CreateTemp("", "lock")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -56,7 +55,7 @@ func TestLockDirFail(t *testing.T) {
|
||||
|
||||
// Tests rwlock methods.
|
||||
func TestRWLockedFile(t *testing.T) {
|
||||
f, err := ioutil.TempFile("", "lock")
|
||||
f, err := os.CreateTemp("", "lock")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -119,7 +118,7 @@ func TestRWLockedFile(t *testing.T) {
|
||||
|
||||
// Tests lock and unlock semantics.
|
||||
func TestLockAndUnlock(t *testing.T) {
|
||||
f, err := ioutil.TempFile("", "lock")
|
||||
f, err := os.CreateTemp("", "lock")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ package mountinfo
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -40,7 +39,7 @@ func TestCrossDeviceMountPaths(t *testing.T) {
|
||||
var err error
|
||||
dir := t.TempDir()
|
||||
mountsPath := filepath.Join(dir, "mounts")
|
||||
if err = ioutil.WriteFile(mountsPath, []byte(successCase), 0o666); err != nil {
|
||||
if err = os.WriteFile(mountsPath, []byte(successCase), 0o666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Failure case where we detected successfully cross device mounts.
|
||||
@@ -89,7 +88,7 @@ func TestCrossDeviceMount(t *testing.T) {
|
||||
var err error
|
||||
dir := t.TempDir()
|
||||
mountsPath := filepath.Join(dir, "mounts")
|
||||
if err = ioutil.WriteFile(mountsPath, []byte(successCase), 0o666); err != nil {
|
||||
if err = os.WriteFile(mountsPath, []byte(successCase), 0o666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
mounts, err := readProcMounts(mountsPath)
|
||||
@@ -138,7 +137,7 @@ func TestReadProcmountInfos(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
|
||||
mountsPath := filepath.Join(dir, "mounts")
|
||||
if err = ioutil.WriteFile(mountsPath, []byte(successCase), 0o666); err != nil {
|
||||
if err = os.WriteFile(mountsPath, []byte(successCase), 0o666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Verifies if reading each line worked properly.
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"math/rand"
|
||||
"net/http"
|
||||
"net/url"
|
||||
@@ -289,7 +288,7 @@ func (c *Client) Call(ctx context.Context, method string, values url.Values, bod
|
||||
}
|
||||
defer xhttp.DrainBody(resp.Body)
|
||||
// Limit the ReadAll(), just in case, because of a bug, the server responds with large data.
|
||||
b, err := ioutil.ReadAll(io.LimitReader(resp.Body, c.MaxErrResponseSize))
|
||||
b, err := io.ReadAll(io.LimitReader(resp.Body, c.MaxErrResponseSize))
|
||||
if err != nil {
|
||||
if xnet.IsNetworkOrHostDown(err, c.ExpectTimeouts) {
|
||||
if !c.NoMetrics {
|
||||
|
||||
@@ -21,7 +21,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -46,7 +46,7 @@ func TestRead(t *testing.T) {
|
||||
var record sql.Record
|
||||
var result bytes.Buffer
|
||||
|
||||
r, _ := NewReader(ioutil.NopCloser(strings.NewReader(c.content)), &ReaderArgs{
|
||||
r, _ := NewReader(io.NopCloser(strings.NewReader(c.content)), &ReaderArgs{
|
||||
FileHeaderInfo: none,
|
||||
RecordDelimiter: c.recordDelimiter,
|
||||
FieldDelimiter: c.fieldDelimiter,
|
||||
@@ -88,7 +88,7 @@ type tester interface {
|
||||
}
|
||||
|
||||
func openTestFile(t tester, file string) []byte {
|
||||
f, err := ioutil.ReadFile("testdata/testdata.zip")
|
||||
f, err := os.ReadFile("testdata/testdata.zip")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -103,7 +103,7 @@ func openTestFile(t tester, file string) []byte {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer rc.Close()
|
||||
b, err := ioutil.ReadAll(rc)
|
||||
b, err := io.ReadAll(rc)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -238,7 +238,7 @@ func TestReadExtended(t *testing.T) {
|
||||
if !c.header {
|
||||
args.FileHeaderInfo = none
|
||||
}
|
||||
r, _ := NewReader(ioutil.NopCloser(bytes.NewReader(input)), &args)
|
||||
r, _ := NewReader(io.NopCloser(bytes.NewReader(input)), &args)
|
||||
fields := 0
|
||||
for {
|
||||
record, err = r.Read(record)
|
||||
@@ -455,7 +455,7 @@ func TestReadFailures(t *testing.T) {
|
||||
if c.sendErr != nil {
|
||||
inr = io.MultiReader(inr, errReader{c.sendErr})
|
||||
}
|
||||
r, _ := NewReader(ioutil.NopCloser(inr), &args)
|
||||
r, _ := NewReader(io.NopCloser(inr), &args)
|
||||
fields := 0
|
||||
for {
|
||||
record, err = r.Read(record)
|
||||
@@ -502,7 +502,7 @@ func BenchmarkReaderBasic(b *testing.B) {
|
||||
unmarshaled: true,
|
||||
}
|
||||
f := openTestFile(b, "nyc-taxi-data-100k.csv")
|
||||
r, err := NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
r, err := NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
}
|
||||
@@ -512,7 +512,7 @@ func BenchmarkReaderBasic(b *testing.B) {
|
||||
b.SetBytes(int64(len(f)))
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
r, err = NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
r, err = NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
}
|
||||
@@ -550,7 +550,7 @@ func BenchmarkReaderHuge(b *testing.B) {
|
||||
b.ResetTimer()
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
r, err := NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
r, err := NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
}
|
||||
@@ -584,7 +584,7 @@ func BenchmarkReaderReplace(b *testing.B) {
|
||||
unmarshaled: true,
|
||||
}
|
||||
f := openTestFile(b, "nyc-taxi-data-100k-single-delim.csv")
|
||||
r, err := NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
r, err := NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
}
|
||||
@@ -594,7 +594,7 @@ func BenchmarkReaderReplace(b *testing.B) {
|
||||
b.SetBytes(int64(len(f)))
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
r, err = NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
r, err = NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
}
|
||||
@@ -621,7 +621,7 @@ func BenchmarkReaderReplaceTwo(b *testing.B) {
|
||||
unmarshaled: true,
|
||||
}
|
||||
f := openTestFile(b, "nyc-taxi-data-100k-multi-delim.csv")
|
||||
r, err := NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
r, err := NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
}
|
||||
@@ -631,7 +631,7 @@ func BenchmarkReaderReplaceTwo(b *testing.B) {
|
||||
b.SetBytes(int64(len(f)))
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
r, err = NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
r, err = NewReader(io.NopCloser(bytes.NewBuffer(f)), &args)
|
||||
if err != nil {
|
||||
b.Fatalf("Reading init failed with %s", err)
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ package json
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@@ -29,7 +28,7 @@ import (
|
||||
)
|
||||
|
||||
func TestNewPReader(t *testing.T) {
|
||||
files, err := ioutil.ReadDir("testdata")
|
||||
files, err := os.ReadDir("testdata")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -75,13 +74,13 @@ func TestNewPReader(t *testing.T) {
|
||||
}
|
||||
|
||||
func BenchmarkPReader(b *testing.B) {
|
||||
files, err := ioutil.ReadDir("testdata")
|
||||
files, err := os.ReadDir("testdata")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
for _, file := range files {
|
||||
b.Run(file.Name(), func(b *testing.B) {
|
||||
f, err := ioutil.ReadFile(filepath.Join("testdata", file.Name()))
|
||||
f, err := os.ReadFile(filepath.Join("testdata", file.Name()))
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
@@ -90,7 +89,7 @@ func BenchmarkPReader(b *testing.B) {
|
||||
b.ResetTimer()
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
r := NewPReader(ioutil.NopCloser(bytes.NewBuffer(f)), &ReaderArgs{})
|
||||
r := NewPReader(io.NopCloser(bytes.NewBuffer(f)), &ReaderArgs{})
|
||||
for {
|
||||
record, err = r.Read(record)
|
||||
if err != nil {
|
||||
|
||||
@@ -20,7 +20,6 @@ package json
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@@ -29,7 +28,7 @@ import (
|
||||
)
|
||||
|
||||
func TestNewReader(t *testing.T) {
|
||||
files, err := ioutil.ReadDir("testdata")
|
||||
files, err := os.ReadDir("testdata")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -75,13 +74,13 @@ func TestNewReader(t *testing.T) {
|
||||
}
|
||||
|
||||
func BenchmarkReader(b *testing.B) {
|
||||
files, err := ioutil.ReadDir("testdata")
|
||||
files, err := os.ReadDir("testdata")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
for _, file := range files {
|
||||
b.Run(file.Name(), func(b *testing.B) {
|
||||
f, err := ioutil.ReadFile(filepath.Join("testdata", file.Name()))
|
||||
f, err := os.ReadFile(filepath.Join("testdata", file.Name()))
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
@@ -90,7 +89,7 @@ func BenchmarkReader(b *testing.B) {
|
||||
b.ResetTimer()
|
||||
var record sql.Record
|
||||
for i := 0; i < b.N; i++ {
|
||||
r := NewReader(ioutil.NopCloser(bytes.NewBuffer(f)), &ReaderArgs{})
|
||||
r := NewReader(io.NopCloser(bytes.NewBuffer(f)), &ReaderArgs{})
|
||||
for {
|
||||
record, err = r.Read(record)
|
||||
if err != nil {
|
||||
|
||||
@@ -25,7 +25,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
@@ -83,9 +82,9 @@ var bufPool = sync.Pool{
|
||||
|
||||
var bufioWriterPool = sync.Pool{
|
||||
New: func() interface{} {
|
||||
// ioutil.Discard is just used to create the writer. Actual destination
|
||||
// io.Discard is just used to create the writer. Actual destination
|
||||
// writer is set later by Reset() before using it.
|
||||
return bufio.NewWriter(ioutil.Discard)
|
||||
return bufio.NewWriter(io.Discard)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -461,7 +460,7 @@ func (s3Select *S3Select) marshal(buf *bytes.Buffer, record sql.Record) error {
|
||||
// Use bufio Writer to prevent csv.Writer from allocating a new buffer.
|
||||
bufioWriter := bufioWriterPool.Get().(*bufio.Writer)
|
||||
defer func() {
|
||||
bufioWriter.Reset(ioutil.Discard)
|
||||
bufioWriter.Reset(io.Discard)
|
||||
bufioWriterPool.Put(bufioWriter)
|
||||
}()
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@ import (
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"reflect"
|
||||
@@ -636,7 +635,7 @@ func TestJSONQueries(t *testing.T) {
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -644,7 +643,7 @@ func TestJSONQueries(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -682,7 +681,7 @@ func TestJSONQueries(t *testing.T) {
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -690,7 +689,7 @@ func TestJSONQueries(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -763,7 +762,7 @@ func TestCSVQueries(t *testing.T) {
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -771,7 +770,7 @@ func TestCSVQueries(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -946,7 +945,7 @@ func TestCSVQueries2(t *testing.T) {
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -954,7 +953,7 @@ func TestCSVQueries2(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -1090,7 +1089,7 @@ true`,
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -1098,7 +1097,7 @@ true`,
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -1236,7 +1235,7 @@ func TestCSVInput(t *testing.T) {
|
||||
if !reflect.DeepEqual(w.response, testCase.expectedResult) {
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -1244,7 +1243,7 @@ func TestCSVInput(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -1356,7 +1355,7 @@ func TestJSONInput(t *testing.T) {
|
||||
if !reflect.DeepEqual(w.response, testCase.expectedResult) {
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -1364,7 +1363,7 @@ func TestJSONInput(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -1663,7 +1662,7 @@ func TestCSVRanges(t *testing.T) {
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -1671,7 +1670,7 @@ func TestCSVRanges(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -1765,7 +1764,7 @@ func TestParquetInput(t *testing.T) {
|
||||
if !reflect.DeepEqual(w.response, testCase.expectedResult) {
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -1773,7 +1772,7 @@ func TestParquetInput(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -1866,7 +1865,7 @@ func TestParquetInputSchema(t *testing.T) {
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -1874,7 +1873,7 @@ func TestParquetInputSchema(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
@@ -1966,7 +1965,7 @@ func TestParquetInputSchemaCSV(t *testing.T) {
|
||||
s3Select.Close()
|
||||
resp := http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Body: ioutil.NopCloser(bytes.NewReader(w.response)),
|
||||
Body: io.NopCloser(bytes.NewReader(w.response)),
|
||||
ContentLength: int64(len(w.response)),
|
||||
}
|
||||
res, err := minio.NewSelectResults(&resp, "testbucket")
|
||||
@@ -1974,7 +1973,7 @@ func TestParquetInputSchemaCSV(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
got, err := ioutil.ReadAll(res)
|
||||
got, err := io.ReadAll(res)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
|
||||
@@ -20,7 +20,7 @@ package simdj
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
@@ -40,7 +40,7 @@ func loadCompressed(t tester, file string) (js []byte) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer dec.Close()
|
||||
js, err = ioutil.ReadFile(filepath.Join("testdata", file+".json.zst"))
|
||||
js, err = os.ReadFile(filepath.Join("testdata", file+".json.zst"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -86,7 +86,7 @@ func TestNDJSON(t *testing.T) {
|
||||
if false {
|
||||
t.Log(string(b))
|
||||
}
|
||||
// _ = ioutil.WriteFile(filepath.Join("testdata", tt.name+".json"), b, os.ModePerm)
|
||||
// _ = os.WriteFile(filepath.Join("testdata", tt.name+".json"), b, os.ModePerm)
|
||||
|
||||
parser:
|
||||
for {
|
||||
@@ -121,7 +121,7 @@ func TestNDJSON(t *testing.T) {
|
||||
t.Fatal("unexpected type:", typ.String())
|
||||
}
|
||||
}
|
||||
refDec := json.NewReader(ioutil.NopCloser(bytes.NewBuffer(ref)), &json.ReaderArgs{ContentType: "json"})
|
||||
refDec := json.NewReader(io.NopCloser(bytes.NewBuffer(ref)), &json.ReaderArgs{ContentType: "json"})
|
||||
|
||||
for {
|
||||
rec, err := dec.Read(nil)
|
||||
|
||||
@@ -20,7 +20,7 @@ package sql
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
@@ -48,7 +48,7 @@ func TestJsonpathEval(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
b, err := ioutil.ReadAll(f)
|
||||
b, err := io.ReadAll(f)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ import (
|
||||
"compress/gzip"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -169,11 +168,13 @@ var _bindata = map[string]func() (*asset, error){
|
||||
// directory embedded in the file by go-bindata.
|
||||
// For example if you run go-bindata on data/... and data contains the
|
||||
// following hierarchy:
|
||||
// data/
|
||||
// foo.txt
|
||||
// img/
|
||||
// a.png
|
||||
// b.png
|
||||
//
|
||||
// data/
|
||||
// foo.txt
|
||||
// img/
|
||||
// a.png
|
||||
// b.png
|
||||
//
|
||||
// then AssetDir("data") would return []string{"foo.txt", "img"}
|
||||
// AssetDir("data/img") would return []string{"a.png", "b.png"}
|
||||
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
|
||||
@@ -223,7 +224,7 @@ func RestoreAsset(dir, name string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
|
||||
err = os.WriteFile(_filePath(dir, name), data, info.Mode())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user