Skip to content

Look into how strictly get* properties must match GET headers #26

@jwodder

Description

@jwodder

RFC 4918 implies that the get* properties (i.e., getcontentlanguage, getcontentlength, getcontenttype, getetag, and getlastmodified) are meant to correpond to GET response headers. Does this mean that the properties' values must match what would be returned by a GET request to the corresponding resource? If so, dandidav's current behavior violates this in the following ways:

  • dandidav sets the getcontenttype of blob assets to their encodingFormat metadata field, yet GETing a blob's download URL results in a response from S3 with a Content-Type of binary/octet-stream (or text/plain for some of the JSON metadata files).

  • dandidav sets the getlastmodified of blob assets to the assets' modified properties, yet GETing a blob results in an S3 response that seems to use the blobDateModified date as "Last-Modified". (cf. Use blobDateModified metadata instead of modified property for blob assets' "modified" timestamps #17)

  • dandidav sets the getcontentlength of Dandiset versions to the total size of all assets in the version, but GETing a version via the WebDAV server will result in an HTML page listing its top-level contents, which usually won't be of the same size.

    • What exactly should the getcontentlength for collections be set to? Moreover, what about getcontenttype for collections?

Metadata

Metadata

Assignees

Labels

WebDAVSpecific to the WebDAV protocol/implementationcorrectnessGetting it righthigh priorityWork on these firstneeds researchMore information is required

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions