azureblob: fix RangeOption support in Open #1825

This commit is contained in:
Nick Craig-Wood 2018-01-21 17:10:10 +00:00
parent 8653944a6d
commit 9c45125271
1 changed files with 10 additions and 3 deletions

View File

@ -854,14 +854,21 @@ func (o *Object) Open(options ...fs.OpenOption) (in io.ReadCloser, err error) {
for _, option := range options {
switch x := option.(type) {
case *fs.RangeOption:
start, end := x.Start, x.End
if end < 0 {
end = 0
}
if start < 0 {
start = o.size - end
end = 0
}
getBlobRangeOptions.Range = &storage.BlobRange{
Start: uint64(x.Start),
End: uint64(x.End),
Start: uint64(start),
End: uint64(end),
}
case *fs.SeekOption:
getBlobRangeOptions.Range = &storage.BlobRange{
Start: uint64(x.Offset),
End: uint64(o.size),
}
default:
if option.Mandatory() {