stat
This commit is contained in:
parent
0820c34450
commit
271a3579a1
|
|
@ -10,3 +10,4 @@ test
|
||||||
go.sum
|
go.sum
|
||||||
pkg
|
pkg
|
||||||
test.go
|
test.go
|
||||||
|
.claude
|
||||||
|
|
|
||||||
|
|
@ -149,6 +149,10 @@ func (s *Minio) Stat(objectName string) (*ObjectInfo, error) {
|
||||||
objectName = strings.TrimLeft(objectName, "/ ")
|
objectName = strings.TrimLeft(objectName, "/ ")
|
||||||
stat, err := s.client.StatObject(s.config.Bucket, objectName, minio.StatObjectOptions{})
|
stat, err := s.client.StatObject(s.config.Bucket, objectName, minio.StatObjectOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
// 文件不存在不算错误,返回 nil, nil
|
||||||
|
if isMinioNotFound(err) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
log.Errorf("stat object from minio error:%s", err.Error())
|
log.Errorf("stat object from minio error:%s", err.Error())
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -162,6 +166,18 @@ func (s *Minio) Stat(objectName string) (*ObjectInfo, error) {
|
||||||
return info, nil
|
return info, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isMinioNotFound 检查是否为 MinIO 文件不存在错误
|
||||||
|
func isMinioNotFound(err error) bool {
|
||||||
|
if err == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// MinIO 返回 NoSuchKey 表示文件不存在
|
||||||
|
if respErr, ok := err.(minio.ErrorResponse); ok {
|
||||||
|
return respErr.Code == "NoSuchKey" || respErr.Code == "NotFound"
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Minio) Fetch(urlStr, objectName string, local ...bool) error {
|
func (s *Minio) Fetch(urlStr, objectName string, local ...bool) error {
|
||||||
if err := s.Init(); err != nil {
|
if err := s.Init(); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,10 @@ func (s *Qiniu) Stat(objectName string) (*ObjectInfo, error) {
|
||||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||||
fileInfo, err := bucketManager.Stat(s.config.Bucket, objectName)
|
fileInfo, err := bucketManager.Stat(s.config.Bucket, objectName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
// 文件不存在不算错误,返回 nil, nil
|
||||||
|
if isQiniuNotFound(err) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -202,6 +206,18 @@ func (s *Qiniu) Stat(objectName string) (*ObjectInfo, error) {
|
||||||
return info, nil
|
return info, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isQiniuNotFound 检查是否为七牛云文件不存在错误
|
||||||
|
func isQiniuNotFound(err error) bool {
|
||||||
|
if err == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// 七牛云错误码 612 表示文件不存在
|
||||||
|
if respErr, ok := err.(*storage.ErrorInfo); ok {
|
||||||
|
return respErr.Code == 612
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Qiniu) Fetch(url, objectName string, local ...bool) error {
|
func (s *Qiniu) Fetch(url, objectName string, local ...bool) error {
|
||||||
if len(local) > 0 && local[0] == true {
|
if len(local) > 0 && local[0] == true {
|
||||||
return s.fetchLocal(url, objectName)
|
return s.fetchLocal(url, objectName)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue