Пример #1
0
// init initializes the downloader with default options.
func (d *downloader) init() {
	d.totalBytes = -1

	if d.opts.Concurrency == 0 {
		d.opts.Concurrency = DefaultDownloadConcurrency
	}

	if d.opts.PartSize == 0 {
		d.opts.PartSize = DefaultDownloadPartSize
	}

	if d.opts.S3 == nil {
		d.opts.S3 = s3.New(nil)
	}
}
Пример #2
0
func putVersions(vs Versions) error {
	data, err := json.MarshalIndent(vs, "", "  ")

	if err != nil {
		return err
	}

	S3 := s3.New(&aws.Config{
		Region: aws.String(os.Getenv("AWS_DEFAULT_REGION")),
	})

	_, err = S3.PutObject(&s3.PutObjectInput{
		ACL:           aws.String("public-read"),
		Body:          bytes.NewReader(data),
		Bucket:        aws.String("convox"),
		ContentLength: aws.Int64(int64(len(data))),
		Key:           aws.String("release/versions.json"),
	})

	return err
}
Пример #3
0
// Walk a bucket to create initial versions.json file
func importVersions() (Versions, error) {
	S3 := s3.New(&aws.Config{
		Region: aws.String(os.Getenv("AWS_DEFAULT_REGION")),
	})

	res, err := S3.ListObjects(&s3.ListObjectsInput{
		Bucket:    aws.String("convox"),
		Delimiter: aws.String("/"),
		Prefix:    aws.String("release/"),
	})

	if err != nil {
		return nil, err
	}

	vs := Versions{}

	for _, p := range res.CommonPrefixes {
		parts := strings.Split(*p.Prefix, "/")
		version := parts[1]

		if version == "latest" {
			continue
		}

		vs = append(vs, Version{
			Version:   version,
			Published: false,
			Required:  false,
		})
	}

	err = putVersions(vs)

	return vs, err
}