1// Copyright (C) 2019 Storj Labs, Inc.
2// See LICENSE for copying information.
3
4package metainfo
5
6import (
7	"time"
8
9	"storj.io/common/storj"
10)
11
12// CreateObject has optional parameters that can be set.
13type CreateObject struct {
14	Metadata    map[string]string
15	ContentType string
16	Expires     time.Time
17
18	storj.RedundancyScheme
19	storj.EncryptionParameters
20}
21
22// Object converts the CreateObject to an object with unitialized values.
23func (create CreateObject) Object(bucket Bucket, path storj.Path) Object {
24	return Object{
25		Bucket:      bucket,
26		Path:        path,
27		Metadata:    create.Metadata,
28		ContentType: create.ContentType,
29		Expires:     create.Expires,
30		Stream: Stream{
31			Size:             -1,  // unknown
32			Checksum:         nil, // unknown
33			SegmentCount:     -1,  // unknown
34			FixedSegmentSize: -1,  // unknown
35
36			RedundancyScheme:     create.RedundancyScheme,
37			EncryptionParameters: create.EncryptionParameters,
38		},
39	}
40}
41