Conversation
|
@martindurant do you know by chance who is maintaining the project and could release this change? |
|
@shcheklein thanks for contribution! Populating the updated I'll have more cycles next week to take a deeper review but some initial things we probably want to address now are:
|
4eaa094 to
70c345d
Compare
|
Hi @kyleknap , thanks for the feedback. I've addressed all the items. Azurite doesn't support versioning - thus we use mocks in tests. I think that should be fine. |
|
Thanks @shcheklein! I agree mocks suffice in this case. I'll take a deeper look at the PR this week. |
kyleknap
left a comment
There was a problem hiding this comment.
This looks good! I pulled down the PR and tried it out and it was working well. I just had one question related to append blobs that I ran into.
adlfs/spec.py
Outdated
| if self.fs.version_aware: | ||
| self.version_id = response.get("version_id") |
There was a problem hiding this comment.
For append blobs, were you able to get version id's returned for the upload blob method call? Trying it out myself, I'm not sure if an x-ms-version-id header is even returned back when a PUT is called on an append blob. So the version_id was consistently None even though for block blobs it was being returned back. That being said for HEAD calls on the append blob, the x-ms-version-id was present.
I'm thinking if the API is not returning version id's for PUTs on append blobs, let's remove this logic for now to avoid code paths that won't be hit and avoid having tests implying this should work. We can always add it in if version id's are returned in the future.
|
Hi @shcheklein. Have you gotten a chance to look at the comment that I left? If you do not have the bandwidth to look or make updates, we can make the remaining updates as well to get this merged too. Let us know. |
|
@kyleknap apologies for the delay. It is a good catch with append. I wanted actually to double check the workflow in that case - e.g. does it update the version? do we capture it at the end, etc. I'll get to it soon, but I'm also totally fine if someone can also check it to be sure. Also, fine to remove it completely and merge. |
921d237 to
36ded67
Compare
|
@kyleknap PTAL again when you have a minute. Double checked the append workflow. Unfortunately it seems there is no reliable way to get the version ID of an object being updated (only if it was created first time). Any extra API call leads to a potential race. Also append it seems doesn't create new versions at all (?). I think we have to skip it pretty much for now. |
Similar to fsspec/gcsfs#718
To be able to refer to a file properly (in case multiple uploads happening simultaneously to the same path), we want to grab generation from the response. S3 already does this.