diff --git a/lib/actions/upload-actions.js b/lib/actions/upload-actions.js --- a/lib/actions/upload-actions.js +++ b/lib/actions/upload-actions.js @@ -177,10 +177,20 @@ const { uploadInput, callbacks, keyserverOrThreadID } = input; const { encryptionKey, loop, dimensions, thumbHash, blobInput } = uploadInput; - const blobHolder = generateBlobHolder(authMetadata.deviceID); const blobHash = toBase64URL(uploadInput.blobHash); const defaultHeaders = createDefaultHTTPRequestHeaders(authMetadata); + let maybeKeyserverID; + if (keyserverOrThreadID) { + maybeKeyserverID = + extractKeyserverIDFromIDOptional(keyserverOrThreadID) ?? + keyserverOrThreadID; + } + + // don't prefix keyserver-owned holders with deviceID + const holderPrefix = maybeKeyserverID ? null : authMetadata.deviceID; + const blobHolder = generateBlobHolder(holderPrefix); + // 1. Assign new holder for blob with given blobHash let blobAlreadyExists: boolean; try { @@ -239,12 +249,6 @@ } // 3. Optionally upload metadata to keyserver - let maybeKeyserverID; - if (keyserverOrThreadID) { - maybeKeyserverID = - extractKeyserverIDFromIDOptional(keyserverOrThreadID) ?? - keyserverOrThreadID; - } const mimeType = blobInput.type === 'file' ? blobInput.file.type : blobInput.mimeType;