-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Store client's file checksum as metadata and return it again in downloads and PROPFIND #18716
Comments
👍 |
Sounds great 😄 |
The client-side ticket is owncloud/client#3735. When this is added to the server, please also add a list of supported checksumming algorithms to the capabilities API. The client currently supports "Adler32", "MD5" and "SHA1". You can already ask the client to send checksums for uploads by adding |
I would suggest that both client and server work with a HTTP header of the form:
Currently we support the checksum types |
@dragotin is the client already sending something ? TODO for the server:
|
yes, since 2.1.0 the client sends either Adler32 (probably not useful), MD5 or SHA1 if you enable it in the config file by setting:
in the |
I would say so yes |
I'd suggest to be able to store different types of checksums for one file. We will have different checksum types for securing the transmission versus checksums over the content. |
Regarding filecache table: I heard that adding a column on an existing table that has 10K or more entries might be slow at update time. So we might also need to consider a separate table. |
I'd suggest a detail table with colums |
Makes more sense yes |
should be of lesser issue if the column is nullable |
#21997 is in. Documentation ticket in https://github.com/owncloud/documentation/issues/2132 |
Closing time :) |
Proper return values for multiple checksums went in as #22199 |
Just for the record: So far, the client never asks for the checksum in PROPFINDs. As a result, the checksum is never returned in a PROPFIND result and thus does not need to be read from database for the normal PROPFIND usecase. For the current functionality, the client does not need the content checksum at all. So far we agreed to only use the checksum for transportation verification. For that, the checksum is contained in a HTTP header of the PUT or GET request, and from there the client is reading it. For change detection of server files, we continue to rely on the ETags which makes sense. So I currently see no reason why the client would EVER ask for the checksum of the whole file in a PROPFIND. It is very good to have that for special cases but not for the normal case. Let me kindly ask for re-considering to store multiple checksums in a detail table rather than in one column in oc_filecache given these facts. |
Even if it is outside of this feature, it would be good to have Dreaming further, it would be good to be able to sync differences within Regards, On 2016-02-18 11:26, Klaas Freitag wrote:
|
After further discussion with @dragotin we will for now keep the current approach because it is simply enough for what we are trying to accomplish for 9.0 Even if storage backends can provide multiple checksums - the question is if we really need to store them in out database. Assuming we once want to verify the checksums between owncloud and the storage system - I see no need in storing them because the checksums are only evaluated on upload to the storage. The checksum send from/to the client is for a different scenarios/part of the workflow. |
I think this is the important bit to fix #11811 |
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
We want to handle checksums in webdav requests.
Goals:
Limitations:
Approach:
Because checksums are not always available and are completely optional the clients can't rely on them for the actual syncing algorithm.
This approach can be extended in different directions in the future but we should start with this step.
QA ticket: owncloud/QA#113
Documentation ticket: https://github.com/owncloud/documentation/issues/2132
The text was updated successfully, but these errors were encountered: