You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

server.go 4.0 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package http
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "gitlink.org.cn/cloudream/jcs-pub/client/internal/http/types"
  5. "gitlink.org.cn/cloudream/jcs-pub/client/internal/services"
  6. cliapi "gitlink.org.cn/cloudream/jcs-pub/client/sdk/api/v1"
  7. )
  8. type Server struct {
  9. svc *services.Service
  10. cfg *types.Config
  11. }
  12. func NewServer(cfg *types.Config, svc *services.Service) *Server {
  13. return &Server{
  14. cfg: cfg,
  15. svc: svc,
  16. }
  17. }
  18. func (s *Server) InitRouters(rt gin.IRoutes) {
  19. awsAuth := NewAWSAuth(s.cfg)
  20. rt.GET(cliapi.ObjectListPathByPath, awsAuth.Auth, s.Object().ListByPath)
  21. rt.GET(cliapi.ObjectListByIDsPath, awsAuth.Auth, s.Object().ListByIDs)
  22. rt.GET(cliapi.ObjectDownloadPath, awsAuth.Auth, s.Object().Download)
  23. rt.GET(cliapi.ObjectDownloadByPathPath, awsAuth.Auth, s.Object().DownloadByPath)
  24. rt.POST(cliapi.ObjectUploadPath, awsAuth.AuthWithoutBody, s.Object().Upload)
  25. rt.GET(cliapi.ObjectGetPackageObjectsPath, awsAuth.Auth, s.Object().GetPackageObjects)
  26. rt.POST(cliapi.ObjectUpdateInfoPath, awsAuth.Auth, s.Object().UpdateInfo)
  27. rt.POST(cliapi.ObjectUpdateInfoByPathPath, awsAuth.Auth, s.Object().UpdateInfoByPath)
  28. rt.POST(cliapi.ObjectMovePath, awsAuth.Auth, s.Object().Move)
  29. rt.POST(cliapi.ObjectDeletePath, awsAuth.Auth, s.Object().Delete)
  30. rt.POST(cliapi.ObjectDeleteByPathPath, awsAuth.Auth, s.Object().DeleteByPath)
  31. rt.POST(cliapi.ObjectClonePath, awsAuth.Auth, s.Object().Clone)
  32. rt.GET(cliapi.PackageGetPath, awsAuth.Auth, s.Package().Get)
  33. rt.GET(cliapi.PackageGetByFullNamePath, awsAuth.Auth, s.Package().GetByFullName)
  34. rt.POST(cliapi.PackageCreatePath, awsAuth.Auth, s.Package().Create)
  35. rt.POST(cliapi.PackageCreateUploadPath, awsAuth.Auth, s.Package().CreateLoad)
  36. rt.POST(cliapi.PackageDeletePath, awsAuth.Auth, s.Package().Delete)
  37. rt.POST(cliapi.PackageClonePath, awsAuth.Auth, s.Package().Clone)
  38. rt.GET(cliapi.PackageListBucketPackagesPath, awsAuth.Auth, s.Package().ListBucketPackages)
  39. rt.POST(cliapi.UserSpaceDownloadPackagePath, awsAuth.Auth, s.UserSpace().DownloadPackage)
  40. rt.POST(cliapi.UserSpaceCreatePackagePath, awsAuth.Auth, s.UserSpace().CreatePackage)
  41. rt.GET(cliapi.UserSpaceGetPath, awsAuth.Auth, s.UserSpace().Get)
  42. rt.POST(cliapi.UserSpaceCreatePath, awsAuth.Auth, s.UserSpace().Create)
  43. rt.POST(cliapi.UserSpaceUpdatePath, awsAuth.Auth, s.UserSpace().Update)
  44. rt.POST(cliapi.UserSpaceDeletePath, awsAuth.Auth, s.UserSpace().Delete)
  45. rt.POST(cliapi.UserSpaceTestPath, awsAuth.Auth, s.UserSpace().Test)
  46. rt.POST(cliapi.UserSpaceSpaceToSpacePath, awsAuth.Auth, s.UserSpace().SpaceToSpace)
  47. rt.GET(cliapi.BucketGetByNamePath, awsAuth.Auth, s.Bucket().GetByName)
  48. rt.POST(cliapi.BucketCreatePath, awsAuth.Auth, s.Bucket().Create)
  49. rt.POST(cliapi.BucketDeletePath, awsAuth.Auth, s.Bucket().Delete)
  50. rt.GET(cliapi.BucketListAllPath, awsAuth.Auth, s.Bucket().ListAll)
  51. rt.POST(cliapi.ObjectNewMultipartUploadPath, awsAuth.Auth, s.Object().NewMultipartUpload)
  52. rt.POST(cliapi.ObjectUploadPartPath, awsAuth.AuthWithoutBody, s.Object().UploadPart)
  53. rt.POST(cliapi.ObjectCompleteMultipartUploadPath, awsAuth.Auth, s.Object().CompleteMultipartUpload)
  54. rt.GET(cliapi.PresignedObjectListByPathPath, awsAuth.PresignedAuth, s.Presigned().ObjectListByPath)
  55. rt.GET(cliapi.PresignedObjectDownloadByPathPath, awsAuth.PresignedAuth, s.Presigned().ObjectDownloadByPath)
  56. rt.GET(cliapi.PresignedObjectDownloadPath, awsAuth.PresignedAuth, s.Presigned().ObjectDownload)
  57. rt.POST(cliapi.PresignedObjectUploadPath, awsAuth.PresignedAuth, s.Presigned().ObjectUpload)
  58. rt.POST(cliapi.PresignedObjectNewMultipartUploadPath, awsAuth.PresignedAuth, s.Presigned().ObjectNewMultipartUpload)
  59. rt.POST(cliapi.PresignedObjectUploadPartPath, awsAuth.PresignedAuth, s.Presigned().ObjectUploadPart)
  60. rt.POST(cliapi.PresignedObjectCompleteMultipartUploadPath, awsAuth.PresignedAuth, s.Presigned().ObjectCompleteMultipartUpload)
  61. rt.GET(cliapi.MountDumpStatusPath, awsAuth.Auth, s.Mount().DumpStatus)
  62. rt.POST(cliapi.MountStartReclaimSpacePath, awsAuth.Auth, s.Mount().StartReclaimSpace)
  63. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。