MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / Create

Method Create

service/explorer/file.go:218–242  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

216)
217
218func (service *CreateFileService) Create(c *gin.Context) (*FileResponse, error) {
219 dep := dependency.FromContext(c)
220 user := inventory.UserFromContext(c)
221 m := manager.NewFileManager(dep, user)
222 defer m.Recycle()
223
224 uri, err := fs.NewUriFromString(service.Uri)
225 if err != nil {
226 return nil, serializer.NewError(serializer.CodeParamErr, "unknown uri", err)
227 }
228
229 fileType := types.FileTypeFromString(service.Type)
230 opts := []fs.Option{
231 fs.WithMetadata(service.Metadata),
232 }
233 if service.ErrOnConflict {
234 opts = append(opts, dbfs.WithErrorOnConflict())
235 }
236 file, err := m.Create(c, uri, fileType, opts...)
237 if err != nil {
238 return nil, err
239 }
240
241 return BuildFileResponse(c, user, file, dep.HashIDEncoder(), nil), nil
242}
243
244type (
245 RenameFileParameterCtx struct{}

Callers

nothing calls this directly

Calls 12

RecycleMethod · 0.95
CreateMethod · 0.95
FromContextFunction · 0.92
UserFromContextFunction · 0.92
NewFileManagerFunction · 0.92
NewUriFromStringFunction · 0.92
NewErrorFunction · 0.92
FileTypeFromStringFunction · 0.92
WithMetadataFunction · 0.92
WithErrorOnConflictFunction · 0.92
BuildFileResponseFunction · 0.85
HashIDEncoderMethod · 0.65

Tested by

no test coverage detected