Patch #25115
Support upload of empty files and fix invalid API response
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | Attachments | |||
Target version: | 3.3.3 |
Description
When Uploading an empty file through the REST API (POST to /uploads.json), the response is 201 Created, and an invalid token (which that does not resolve to an attachment through Attachment.find_by_token
because it lacks the digest component) is returned. However an attachment record is still saved, but without a corresponding file in the file system.
When looking into this I found that the easiest fix for this would be to change the two conditionals in attachment.rb that prevent an empty file from being treated like any non-empty file. I don't see any technical reason to not allow the uploading of empty files, and my change doesn't seem to cause any of the existing tests to fail.
Attached is a patch which does that, including a test case illustrating the inconsistent API behavior I described above.
Related issues
Associated revisions
Fixes uploading of empty files (#25115).
- prevents creation of attachment records without existing diskfile and empty
digest
- adds test case to check file upload API response
- also removes the file size check in ActsAsAttachable which still prevented
attachment of zero size attachments to containers but only for clients
without Javascript (where save_attachments is called with the actual file
upload).
Patch by Jens Kraemer.
History
#1
Updated by Go MAEDA over 5 years ago
- Related to Defect #5969: Attachments with size zero are ignored added
#2
Updated by Go MAEDA over 5 years ago
- Target version set to 3.3.3
This patch also fixes the issue reported as #5969.
#3
Updated by Jens Krämer over 5 years ago
- File 0001-fixes-uploading-of-empty-files-v2.patch
added
Here's an extended version of the patch. This one also removes the file size check in acts_as_attachable which prevented empty attachment creation for http uploads without javascript (in all other cases this part of the code isn't relevant since save_attachments
is called with just the tokens of already saved attachments).
This patch replaces the original one.
#4
Updated by Jean-Philippe Lang over 5 years ago
- Subject changed from support upload of empty files and fix invalid API response to Support upload of empty files and fix invalid API response
- Status changed from New to Resolved
- Assignee set to Jean-Philippe Lang
Patch committed, thanks.
#5
Updated by Jean-Philippe Lang over 5 years ago
- Status changed from Resolved to Closed