diff --git a/docs/opendata对外接口文档.docx b/docs/opendata对外接口文档.docx index 10828c452..f37a31f2c 100755 Binary files a/docs/opendata对外接口文档.docx and b/docs/opendata对外接口文档.docx differ diff --git a/docs/开源社区与云脑平台对接方案(2)(1).docx b/docs/开源社区与云脑平台对接方案(2)(1).docx deleted file mode 100755 index a234ea0bc..000000000 Binary files a/docs/开源社区与云脑平台对接方案(2)(1).docx and /dev/null differ diff --git a/docs/开源社区与云脑平台对接方案.docx b/docs/开源社区与云脑平台对接方案.docx index 9be7583a3..8db5c651a 100755 Binary files a/docs/开源社区与云脑平台对接方案.docx and b/docs/开源社区与云脑平台对接方案.docx differ diff --git a/models/attachment.go b/models/attachment.go index e4bb0b5ef..3d4e4d136 100755 --- a/models/attachment.go +++ b/models/attachment.go @@ -6,6 +6,7 @@ package models import ( "bytes" + "code.gitea.io/gitea/modules/log" "fmt" "io" "path" @@ -355,3 +356,18 @@ func getAllPublicAttachments(e Engine) ([]*Attachment, error) { attachments := make([]*Attachment, 0, 10) return attachments, e.Where("is_private = false and decompress_state = ?", DecompressStateDone).Find(&attachments) } + +func GetPrivateAttachments(username string) ([]*Attachment, error) { + user, err := getUserByName(x, username) + if err != nil { + log.Error("getUserByName(%s) failed:%v", username, err) + return nil, err + } + return getPrivateAttachments(x, user.ID) +} + +func getPrivateAttachments(e Engine, userID int64) ([]*Attachment, error) { + attachments := make([]*Attachment, 0, 10) + return attachments, e.Where("uploader_id = ? and decompress_state = ?", userID, DecompressStateDone).Find(&attachments) +} + diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index f2d3b2ea0..2e56fbb06 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -617,6 +617,7 @@ email_notifications.disable=停用邮件通知 email_notifications.submit=邮件通知设置 [dataset] +alert=如果要发起云脑任务,请上传zip格式的数据集 dataset=数据集 dataset_setting=数据集设置 title=名称 diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go index 266e3c0cf..3881ff733 100755 --- a/routers/repo/attachment.go +++ b/routers/repo/attachment.go @@ -29,7 +29,7 @@ const ( DecompressFailed = "1" ) -type PublicDataset struct { +type CloudBrainDataset struct { UUID string `json:"id"` Name string `json:"name"` Path string `json:"place"` @@ -635,25 +635,44 @@ func QueryAllPublicDataset(ctx *context.Context){ return } - var publicDatasets []PublicDataset + queryDatasets(ctx, "admin", attachs) +} + +func QueryPrivateDataset(ctx *context.Context){ + username := ctx.Params(":username") + attachs, err := models.GetPrivateAttachments(username) + if err != nil { + ctx.JSON(200, map[string]string{ + "result_code": "-1", + "error_msg": err.Error(), + "data": "", + }) + return + } + + queryDatasets(ctx, username, attachs) +} + +func queryDatasets(ctx *context.Context, username string, attachs []*models.Attachment) { + var datasets []CloudBrainDataset for _, attch := range attachs { has,err := storage.Attachments.HasObject(models.AttachmentRelativePath(attch.UUID)) if err != nil || !has { continue } - publicDatasets = append(publicDatasets, PublicDataset{attch.UUID, + datasets = append(datasets, CloudBrainDataset{attch.UUID, attch.Name, setting.Attachment.Minio.RealPath + - setting.Attachment.Minio.Bucket + "/" + - setting.Attachment.Minio.BasePath + - models.AttachmentRelativePath(attch.UUID) + - attch.UUID, - "admin", - attch.CreatedUnix.Format("2006-01-02 03:04:05")}) + setting.Attachment.Minio.Bucket + "/" + + setting.Attachment.Minio.BasePath + + models.AttachmentRelativePath(attch.UUID) + + attch.UUID, + username, + attch.CreatedUnix.Format("2006-01-02 03:04:05")}) } - data,err := json.Marshal(publicDatasets) + data,err := json.Marshal(datasets) if err != nil { log.Error("json.Marshal failed:", err.Error()) ctx.JSON(200, map[string]string{ @@ -669,4 +688,5 @@ func QueryAllPublicDataset(ctx *context.Context){ "error_msg": "", "data": string(data), }) + return } diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 3181aaed5..8d722cfe2 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -535,8 +535,9 @@ func RegisterRoutes(m *macaron.Macaron) { m.Post("/decompress_done_notify", repo.UpdateAttachmentDecompressState) }) - m.Group("/attachments/public", func() { - m.Get("/query", repo.QueryAllPublicDataset) + m.Group("/attachments", func() { + m.Get("/public/query", repo.QueryAllPublicDataset) + m.Get("/private/:username", repo.QueryPrivateDataset) }, reqBasicAuth) m.Group("/:username", func() { diff --git a/templates/repo/datasets/index.tmpl b/templates/repo/datasets/index.tmpl index 1c6a2a2b2..6e629bdc7 100755 --- a/templates/repo/datasets/index.tmpl +++ b/templates/repo/datasets/index.tmpl @@ -3,6 +3,11 @@ {{template "repo/header" .}}