// Initializes the uploader object with connection data and metadata // for this specific GenericFile. func (storer *APTStorer) initUploader(ingestState *models.IngestState, gf *models.GenericFile, sendWhere string) *network.S3Upload { var region string var bucket string if sendWhere == "s3" { region = storer.Context.Config.APTrustS3Region bucket = storer.Context.Config.PreservationBucket } else if sendWhere == "glacier" { region = storer.Context.Config.APTrustGlacierRegion bucket = storer.Context.Config.ReplicationBucket } else { ingestState.IngestManifest.StoreResult.AddError("Cannot save %s to %s because "+ "storer doesn't know where %s is", gf.Identifier, sendWhere) ingestState.IngestManifest.StoreResult.ErrorIsFatal = true return nil } uploader := network.NewS3Upload( region, bucket, gf.IngestUUID, gf.FileFormat, ) uploader.AddMetadata("institution", ingestState.IngestManifest.Object.Institution) uploader.AddMetadata("bag", ingestState.IngestManifest.Object.Identifier) uploader.AddMetadata("bagpath", gf.OriginalPath()) uploader.AddMetadata("md5", gf.IngestMd5) uploader.AddMetadata("sha256", gf.IngestSha256) return uploader }
func TestOriginalPath(t *testing.T) { genericFile := models.GenericFile{} genericFile.IntellectualObjectIdentifier = "uc.edu/cin.675812" // Top-level custom tag file genericFile.Identifier = "uc.edu/cin.675812/tagmanifest-sha256.txt" origPath := genericFile.OriginalPath() assert.Equal(t, "tagmanifest-sha256.txt", origPath) // Payload file genericFile.Identifier = "uc.edu/cin.675812/data/object.properties" origPath = genericFile.OriginalPath() assert.Equal(t, "data/object.properties", origPath) // Nested custom tag file genericFile.Identifier = "uc.edu/cin.675812/custom/tag/dir/special_info.xml" origPath = genericFile.OriginalPath() assert.Equal(t, "custom/tag/dir/special_info.xml", origPath) }