Skip to content

Commit 6b608d1

Browse files
committed
feat: handle missing node id in tus
1 parent 86133fa commit 6b608d1

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

  • internal/http/services/owncloud/ocdav
  • pkg/rhttp/datatx/manager/tus

‎internal/http/services/owncloud/ocdav/tus.go‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,8 @@ func (s *svc) handleTusPost(ctx context.Context, w http.ResponseWriter, r *http.
319319
sReq.Ref.Path = uReq.Ref.GetPath()
320320
sReq.Ref.ResourceId = nil
321321
} else {
322-
if resid, err := storagespace.ParseID(httpRes.Header.Get(net.HeaderOCFileID)); err == nil {
322+
// new files have no node id yet; keep the path-based ref instead
323+
if resid, err := storagespace.ParseID(httpRes.Header.Get(net.HeaderOCFileID)); err == nil && resid.GetOpaqueId() != "" {
323324
sReq.Ref = &provider.Reference{
324325
ResourceId: &resid,
325326
}

‎pkg/rhttp/datatx/manager/tus/tus.go‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,10 @@ func setHeaders(coord upload.Coordinator, w http.ResponseWriter, r *http.Request
212212
if expires != "" {
213213
w.Header().Set(net.HeaderTusUploadExpires, expires)
214214
}
215+
// the node id is only valid once the upload commits; skip the header for new files
216+
if info.Storage["NodeExists"] != "true" {
217+
return
218+
}
215219
resourceid := &provider.ResourceId{
216220
StorageId: info.MetaData["providerID"],
217221
SpaceId: info.Storage["SpaceRoot"],

0 commit comments

Comments
 (0)