HTTP multi-range request support

Asked by kstyrc

I hope here is the right place to ask such question.

Is there any ongoing work to add the full support for HTTP range header including multi-range requests in SWIFT?
If not, is there any project assumption to reject this full support?

I'm currently developing a service for validation of a file upon its partial content. So it is required to be able to request:
GET /<api version>/<account>/<container>/<object> HTTP/1.1
Host: storage.swiftdrive.com
X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
Range: bytes=0-50, 100-150, and so on for example

Unfortunately, according to the docs: http://docs.openstack.org/bexar/openstack-object-storage/developer/content/ch03s03.html#d5e596 this Range form is not supported.
Running such request against swift endpoint results in
HTTP/1.1 416 Requested Range Not Satisfiable

Also checked the blueprints:
https://blueprints.launchpad.net/swift
https://blueprints.launchpad.net/openstack-common
https://blueprints.launchpad.net/openstack
but was unable to find any related feature.

So, is there any ongoing work to add the full http range support? Could it be proposed as blueprint in SWIFT project?

Question information

Language:
English Edit question
Status:
Answered
For:
OpenStack Object Storage (swift) Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
John Dickinson (notmyname) said :
#1

You are correct in that swift does not support multiple ranges.

This is a limitation of webob (the underlying wsgi request/response handler) that swift uses. If swift were to support multi-range requests, it would need to be implemented in the webob framework (http://www.webob.org/)

Revision history for this message
kstyrc (kstyrc) said :
#2

I'm rather not familiar with python world.

Is multiple ranges support likely to be accepted and implemented in the webob framework?

Revision history for this message
John Dickinson (notmyname) said :
#3

Honestly, that would be up to the webob project owners to decide.

I've always found them receptive to code patches. They have accepted several patches from the core swift devs as we found issues that affected us while writing swift. I'm sure they would be happy to have multi-range request support in their framework.

--John

On Jan 10, 2012, at 7:45 PM, kstyrc wrote:

> Question #184299 on OpenStack Object Storage (swift) changed:
> https://answers.launchpad.net/swift/+question/184299
>
> Status: Answered => Open
>
> kstyrc is still having a problem:
> I'm rather not familiar with python world.
>
> Is multiple ranges support likely to be accepted and implemented in the
> webob framework?
>
> --
> You received this question notification because you are a member of
> Swift Core, which is an answer contact for OpenStack Object Storage
> (swift).

Revision history for this message
kstyrc (kstyrc) said :
#4

I've opened an issue for full http range support in webob framework:
https://github.com/Pylons/webob/issues/23

Revision history for this message
Dieter P (dieter-plaetinck) said :
#5

what's the status of this? that issue is closed with a reference to https://groups.google.com/forum/#!topic/paste-users/FOsN7y3xt6M but it's not clear what the current situation is.

Revision history for this message
Tong Li (litong01) said :
#6

Guys, I am currently working on the implementation. This is based on the implementation of replacing webob in swift. You can find the implementation here, https://review.openstack.org/#/c/14180/. Hopefully, the changes will get emerged into swift soon.

Can you help with this problem?

Provide an answer of your own, or ask kstyrc for more information if necessary.

To post a message you must log in.