(ctx context.Context, ref blob.Ref)
| 27 | ) |
| 28 | |
| 29 | func (m *mongoStorage) Fetch(ctx context.Context, ref blob.Ref) (io.ReadCloser, uint32, error) { |
| 30 | var b blobDoc |
| 31 | err := m.c.Find(bson.M{"key": ref.String()}).One(&b) |
| 32 | if err != nil { |
| 33 | return nil, 0, err |
| 34 | } |
| 35 | if len(b.Blob) != int(b.Size) { |
| 36 | return nil, 0, fmt.Errorf("blob data size %d doesn't match meta size %d", len(b.Blob), b.Size) |
| 37 | } |
| 38 | return io.NopCloser(bytes.NewReader(b.Blob)), b.Size, nil |
| 39 | } |