blob: 077d60e9e38b43f5fe2323cbb9e7fba7710719b3 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package artifactory
import (
"archive/tar"
)
// Upload is a struct that contains source and destination paths to files to
// upload to GCS.
type Upload struct {
// Source is the path to the local file to upload.
Source string
// Destination is the path to upload to relative to a gcs bucket and namespace.
Destination string
// Compress is a directive to gzip the object before uploading.
Compress bool
// Contents contains the contents to upload to Destination. This field
// will only be used if Source is empty.
Contents []byte
// Deduplicate gives a collision strategy. If true, then an upload should
// not fail in the event of a collision, allowing for deduplication of, for
// example, content-addressed uploads.
Deduplicate bool
// Recursive tells whether to recursively upload all files in Source if
// Source is a directory.
Recursive bool
// Metadata contains the metadata to be uploaded with the file.
Metadata map[string]string
// TarHeader tells whether or not to compress with tar and contains the
// associated header.
TarHeader *tar.Header
}