diff --git a/modules/storage/minio.go b/modules/storage/minio.go index 7b914817d..47f70e12d 100755 --- a/modules/storage/minio.go +++ b/modules/storage/minio.go @@ -59,6 +59,16 @@ func (m *MinioStorage) buildMinioPath(p string) string { return strings.TrimPrefix(path.Join(m.basePath, p), "/") } +func (m *MinioStorage) DownloadAFile(bucket string, objectName string) (io.ReadCloser, error) { + + var opts = minio.GetObjectOptions{} + object, err := m.client.GetObject(m.bucket, objectName, opts) + if err != nil { + return nil, err + } + return object, nil +} + // Open open a file func (m *MinioStorage) Open(path string) (io.ReadCloser, error) { var opts = minio.GetObjectOptions{} diff --git a/modules/storage/minio_ext.go b/modules/storage/minio_ext.go index 6aeaec623..82efcc710 100755 --- a/modules/storage/minio_ext.go +++ b/modules/storage/minio_ext.go @@ -113,7 +113,6 @@ func GenMultiPartSignedUrl(uuid string, uploadId string, partNumber int, partSiz objectName := strings.TrimPrefix(path.Join(minio.BasePath, path.Join(uuid[0:1], uuid[1:2], uuid)), "/") return minioClient.GenUploadPartSignedUrl(uploadId, bucketName, objectName, partNumber, partSize, PresignedUploadPartUrlExpireTime, setting.Attachment.Minio.Location) - } func GetAllObjectByBucketAndPrefixMinio(bucket string, prefix string) ([]FileInfo, error) { diff --git a/routers/repo/ai_model_manage.go b/routers/repo/ai_model_manage.go index 53030949e..ef8c4b754 100644 --- a/routers/repo/ai_model_manage.go +++ b/routers/repo/ai_model_manage.go @@ -207,14 +207,15 @@ func downloadModelFromCloudBrainTwo(modelUUID string, jobName string, parentDir func downloadModelFromCloudBrainOne(modelUUID string, jobName string, parentDir string, trainUrl string) (string, int64, error) { modelActualPath := storage.GetMinioPath(jobName, "/model/") - destKeyNamePrefix := Model_prefix + models.AttachmentRelativePath(modelUUID) + "/" - size, err := storage.MinioPathCopy(setting.Bucket, modelActualPath, destKeyNamePrefix) - if err == nil { - dataActualPath := setting.Bucket + "/" + destKeyNamePrefix - return dataActualPath, size, nil - } else { - return "", 0, nil - } + log.Info("modelActualPath=" + modelActualPath) + //destKeyNamePrefix := Model_prefix + models.AttachmentRelativePath(modelUUID) + "/" + //size, err := storage.MinioPathCopy(setting.Bucket, modelActualPath, destKeyNamePrefix) + //if err == nil { + // dataActualPath := setting.Bucket + "/" + destKeyNamePrefix + // return dataActualPath, size, nil + //} else { + return "", 0, nil + //} } func DeleteModel(ctx *context.Context) { @@ -304,7 +305,7 @@ func DownloadMultiModelFile(ctx *context.Context) { } func downloadFromCloudBrainOne(path string, task *models.AiModelManage, ctx *context.Context, id string) { - allFile, err := storage.GetAllObjectByBucketAndPrefix(setting.Bucket, path) + allFile, err := storage.GetAllObjectByBucketAndPrefixMinio(setting.Attachment.Minio.Bucket, path) if err == nil { //count++ models.ModifyModelDownloadCount(id) @@ -325,7 +326,7 @@ func downloadFromCloudBrainOne(path string, task *models.AiModelManage, ctx *con ctx.ServerError("download file failed:", err) return } - body, err := storage.ObsDownloadAFile(setting.Bucket, path+oneFile.FileName) + body, err := storage.Attachments.Open(oneFile.FileName) if err != nil { log.Info("download file failed: %s\n", err.Error()) ctx.ServerError("download file failed:", err)