refactor: add option to SaveUpload so we have the option not to change an upload record if we are uploading or importing a file
This commit is contained in:
parent
8bf4887dae
commit
a8f62fd666
|
@ -484,7 +484,7 @@ func (s *S5API) smallFileUpload(jc jape.Context) {
|
||||||
newUpload.UserID = user
|
newUpload.UserID = user
|
||||||
newUpload.UploaderIP = jc.Request.RemoteAddr
|
newUpload.UploaderIP = jc.Request.RemoteAddr
|
||||||
|
|
||||||
err2 = s.metadata.SaveUpload(jc.Request.Context(), *newUpload)
|
err2 = s.metadata.SaveUpload(jc.Request.Context(), *newUpload, true)
|
||||||
|
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
s.sendErrorResponse(jc, NewS5Error(ErrKeyFileUploadFailed, err2))
|
s.sendErrorResponse(jc, NewS5Error(ErrKeyFileUploadFailed, err2))
|
||||||
|
@ -1359,7 +1359,7 @@ func (s *S5API) processMultipartFiles(r *http.Request) (map[string]*metadata.Upl
|
||||||
upload.UserID = user
|
upload.UserID = user
|
||||||
upload.UploaderIP = r.RemoteAddr
|
upload.UploaderIP = r.RemoteAddr
|
||||||
|
|
||||||
err = s.metadata.SaveUpload(r.Context(), *upload)
|
err = s.metadata.SaveUpload(r.Context(), *upload, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, NewS5Error(ErrKeyStorageOperationFailed, err)
|
return nil, NewS5Error(ErrKeyStorageOperationFailed, err)
|
||||||
}
|
}
|
||||||
|
@ -1430,7 +1430,7 @@ func (s *S5API) uploadAppMetadata(appData *s5libmetadata.WebAppMetadata, r *http
|
||||||
upload.UserID = userId
|
upload.UserID = userId
|
||||||
upload.UploaderIP = r.RemoteAddr
|
upload.UploaderIP = r.RemoteAddr
|
||||||
|
|
||||||
err = s.metadata.SaveUpload(r.Context(), *upload)
|
err = s.metadata.SaveUpload(r.Context(), *upload, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", NewS5Error(ErrKeyStorageOperationFailed, err)
|
return "", NewS5Error(ErrKeyStorageOperationFailed, err)
|
||||||
}
|
}
|
||||||
|
@ -2004,7 +2004,7 @@ func (s *S5API) pinImportCronJob(cid string, url string, proofUrl string, userId
|
||||||
|
|
||||||
saveAndPin := func(upload *metadata.UploadMetadata) error {
|
saveAndPin := func(upload *metadata.UploadMetadata) error {
|
||||||
upload.UserID = userId
|
upload.UserID = userId
|
||||||
if err := s.metadata.SaveUpload(ctx, *upload); err != nil {
|
if err := s.metadata.SaveUpload(ctx, *upload, true); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ var Module = fx.Module("metadata",
|
||||||
)
|
)
|
||||||
|
|
||||||
type MetadataService interface {
|
type MetadataService interface {
|
||||||
SaveUpload(ctx context.Context, metadata UploadMetadata) error
|
SaveUpload(ctx context.Context, metadata UploadMetadata, skipExisting bool) error
|
||||||
GetUpload(ctx context.Context, objectHash []byte) (UploadMetadata, error)
|
GetUpload(ctx context.Context, objectHash []byte) (UploadMetadata, error)
|
||||||
DeleteUpload(ctx context.Context, objectHash []byte) error
|
DeleteUpload(ctx context.Context, objectHash []byte) error
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ func NewMetadataService(params MetadataServiceParams) *MetadataServiceDefault {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MetadataServiceDefault) SaveUpload(ctx context.Context, metadata UploadMetadata) error {
|
func (m *MetadataServiceDefault) SaveUpload(ctx context.Context, metadata UploadMetadata, skipExisting bool) error {
|
||||||
var upload models.Upload
|
var upload models.Upload
|
||||||
|
|
||||||
upload.Hash = metadata.Hash
|
upload.Hash = metadata.Hash
|
||||||
|
@ -84,6 +84,10 @@ func (m *MetadataServiceDefault) SaveUpload(ctx context.Context, metadata Upload
|
||||||
return ret.Error
|
return ret.Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if skipExisting {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
changed := false
|
changed := false
|
||||||
|
|
||||||
if upload.UserID != metadata.UserID {
|
if upload.UserID != metadata.UserID {
|
||||||
|
|
|
@ -435,7 +435,7 @@ func (t *TusHandler) uploadTask(hash []byte) error {
|
||||||
uploadMeta.UserID = upload.UploaderID
|
uploadMeta.UserID = upload.UploaderID
|
||||||
uploadMeta.UploaderIP = upload.UploaderIP
|
uploadMeta.UploaderIP = upload.UploaderIP
|
||||||
|
|
||||||
err = t.metadata.SaveUpload(ctx, *uploadMeta)
|
err = t.metadata.SaveUpload(ctx, *uploadMeta, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.logger.Error("Could not create upload", zap.Error(err))
|
t.logger.Error("Could not create upload", zap.Error(err))
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Reference in New Issue