public void GetMetadata()
    {
        GetMetadataSample getMetadataSample = new GetMetadataSample();
        var obj = getMetadataSample.GetMetadata(_bucketFixture.BucketNameGeneric, _bucketFixture.FileName);

        Assert.NotNull(obj);
    }
    public void CopyFileArchivedGeneration()
    {
        UploadFileSample                   uploadFileSample                   = new UploadFileSample();
        BucketEnableVersioningSample       bucketEnableVersioningSample       = new BucketEnableVersioningSample();
        GetMetadataSample                  getMetadataSample                  = new GetMetadataSample();
        DownloadFileSample                 downloadFileSample                 = new DownloadFileSample();
        CopyFileArchivedGenerationSample   copyFileArchivedGenerationSample   = new CopyFileArchivedGenerationSample();
        DeleteFileArchivedGenerationSample deleteFileArchivedGenerationSample = new DeleteFileArchivedGenerationSample();
        BucketDisableVersioningSample      bucketDisableVersioningSample      = new BucketDisableVersioningSample();

        var objectName       = "HelloCopyArchive.txt";
        var copiedObjectName = "ByeCopy.txt";

        // Enable bucket versioning
        bucketEnableVersioningSample.BucketEnableVersioning(_fixture.BucketNameGeneric);

        // Uploaded for the first time
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, objectName);

        // Get generation of first version of the file
        var obj = getMetadataSample.GetMetadata(_fixture.BucketNameGeneric, objectName);
        var fileArchivedGeneration = obj.Generation;

        // Upload again to archive previous generation.
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, "Resources/HelloDownloadCompleteByteRange.txt", objectName);

        // Get generation of second version of the file
        obj = getMetadataSample.GetMetadata(_fixture.BucketNameGeneric, objectName);
        var fileCurrentGeneration = obj.Generation;


        _fixture.CollectArchivedFiles(_fixture.BucketNameGeneric, objectName, fileArchivedGeneration);
        _fixture.CollectArchivedFiles(_fixture.BucketNameGeneric, objectName, fileCurrentGeneration);

        try
        {
            // Copy first version of the file to new bucket.
            copyFileArchivedGenerationSample.CopyFileArchivedGeneration(_fixture.BucketNameGeneric, objectName,
                                                                        _fixture.BucketNameRegional, _fixture.CollectRegionalObject(copiedObjectName), fileArchivedGeneration);

            // Download copied file
            downloadFileSample.DownloadFile(_fixture.BucketNameRegional, copiedObjectName, copiedObjectName);

            // Match file contents with first version of the file
            Assert.Equal(File.ReadAllText(_fixture.FilePath), File.ReadAllText(copiedObjectName));
        }
        finally
        {
            File.Delete(copiedObjectName);

            // Disable bucket versioning
            bucketDisableVersioningSample.BucketDisableVersioning(_fixture.BucketNameGeneric);
        }
    }
Esempio n. 3
0
    public void DeleteFileArchivedGeneration()
    {
        UploadFileSample                   uploadFileSample                   = new UploadFileSample();
        ListFilesSample                    listFilesSample                    = new ListFilesSample();
        BucketEnableVersioningSample       bucketEnableVersioningSample       = new BucketEnableVersioningSample();
        GetMetadataSample                  getMetadataSample                  = new GetMetadataSample();
        DownloadFileSample                 downloadFileSample                 = new DownloadFileSample();
        ListFileArchivedGenerationSample   listFileArchivedGenerationSample   = new ListFileArchivedGenerationSample();
        DeleteFileArchivedGenerationSample deleteFileArchivedGenerationSample = new DeleteFileArchivedGenerationSample();
        BucketDisableVersioningSample      bucketDisableVersioningSample      = new BucketDisableVersioningSample();

        var objectName = "HelloDeleteFileArchivedGeneration.txt";

        // Enable bucket versioning
        bucketEnableVersioningSample.BucketEnableVersioning(_fixture.BucketNameGeneric);

        // Uploaded for the first time
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, objectName);

        // Upload again to archive previous generation.
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, "Resources/HelloDownloadCompleteByteRange.txt", objectName);


        try
        {
            var objects = listFileArchivedGenerationSample.ListFileArchivedGeneration(_fixture.BucketNameGeneric);

            Assert.Equal(2, objects.Count(a => a.Name == objectName));

            // Get Generations
            var  testFiles = objects.Where(a => a.Name == objectName).ToList();
            long?fileArchivedGeneration = testFiles[0].Generation;
            long?fileCurrentGeneration  = testFiles[1].Generation;

            // Delete first generation of the file
            deleteFileArchivedGenerationSample.DeleteFileArchivedGeneration(_fixture.BucketNameGeneric, objectName, fileArchivedGeneration);

            objects = listFileArchivedGenerationSample.ListFileArchivedGeneration(_fixture.BucketNameGeneric);
            Assert.Equal(1, objects.Count(a => a.Name == objectName));

            // Delete second generation of the file
            deleteFileArchivedGenerationSample.DeleteFileArchivedGeneration(_fixture.BucketNameGeneric, objectName, fileCurrentGeneration);

            objects = listFileArchivedGenerationSample.ListFileArchivedGeneration(_fixture.BucketNameGeneric);
            Assert.Equal(0, objects.Count(a => a.Name == objectName));
        }
        finally
        {
            // Disable bucket versioning
            bucketDisableVersioningSample.BucketDisableVersioning(_fixture.BucketNameGeneric);
        }
    }
    public void UploadFileWithKmsKey()
    {
        UploadFileWithKmsKeySample uploadFileWithKmsKeySample = new UploadFileWithKmsKeySample();
        GetMetadataSample          getMetadataSample          = new GetMetadataSample();

        // upload file with kms key
        uploadFileWithKmsKeySample.UploadFileWithKmsKey(_fixture.ProjectId, _fixture.BucketNameRegional,
                                                        _fixture.KmsKeyLocation, _fixture.KmsKeyRing, _fixture.KmsKeyName, _fixture.FilePath, "HelloUploadWithKmsKey.txt");

        var metadata = getMetadataSample.GetMetadata(_fixture.BucketNameRegional, "HelloUploadWithKmsKey.txt");

        Assert.Contains(_fixture.KmsKeyName, metadata.KmsKeyName);
    }
    public void MoveFile()
    {
        MoveFileSample    moveFileSample    = new MoveFileSample();
        UploadFileSample  uploadFileSample  = new UploadFileSample();
        GetMetadataSample getMetadataSample = new GetMetadataSample();

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, "HelloMove.txt");
        // Make sure the file doesn't exist until we move it there.
        Assert.Throws <GoogleApiException>(() => getMetadataSample.GetMetadata(_fixture.BucketNameGeneric, "ByeMove.txt"));

        moveFileSample.MoveFile(_fixture.BucketNameGeneric, "HelloMove.txt", _fixture.BucketNameGeneric, _fixture.Collect("ByeMove.txt"));

        var exception = Assert.Throws <GoogleApiException>(() => getMetadataSample.GetMetadata(_fixture.BucketNameGeneric, "HelloMove.txt"));

        Assert.Equal(System.Net.HttpStatusCode.NotFound, exception.HttpStatusCode);
    }
Esempio n. 6
0
    public void TestRemoveFileOwner()
    {
        AddFileOwnerSample    addFileOwnerSample    = new AddFileOwnerSample();
        RemoveFileOwnerSample removeFileOwnerSample = new RemoveFileOwnerSample();
        GetMetadataSample     getMetadataSample     = new GetMetadataSample();

        // Add file owner.
        addFileOwnerSample.AddFileOwner(_bucketFixture.BucketNameGeneric, _bucketFixture.FileName, _bucketFixture.ServiceAccountEmail);

        // Remove file owner.
        removeFileOwnerSample.RemoveFileOwner(_bucketFixture.BucketNameGeneric, _bucketFixture.FileName, _bucketFixture.ServiceAccountEmail);

        var metadata = getMetadataSample.GetMetadata(_bucketFixture.BucketNameGeneric, _bucketFixture.FileName);

        Assert.DoesNotContain(metadata.Acl, acl => acl.Email == _bucketFixture.ServiceAccountEmail && acl.Role == "OWNER");
    }
    public void TestSetTemporaryHold()
    {
        SetTemporaryHoldSample     setTemporaryHoldSample     = new SetTemporaryHoldSample();
        ReleaseTemporaryHoldSample releaseTemporaryHoldSample = new ReleaseTemporaryHoldSample();
        UploadFileSample           uploadFileSample           = new UploadFileSample();
        GetMetadataSample          getMetadataSample          = new GetMetadataSample();

        uploadFileSample.UploadFile(_bucketFixture.BucketNameRegional, _bucketFixture.FilePath, _bucketFixture.CollectRegionalObject("SetTemporaryHold.txt"));

        setTemporaryHoldSample.SetTemporaryHold(_bucketFixture.BucketNameRegional, "SetTemporaryHold.txt");

        var metadata = getMetadataSample.GetMetadata(_bucketFixture.BucketNameRegional, "SetTemporaryHold.txt");

        Assert.True(metadata.TemporaryHold);

        releaseTemporaryHoldSample.ReleaseTemporaryHold(_bucketFixture.BucketNameRegional, "SetTemporaryHold.txt");
    }
    public void SetObjectMetadata()
    {
        GetMetadataSample       getMetadataSample       = new GetMetadataSample();
        UploadFileSample        uploadFileSample        = new UploadFileSample();
        SetObjectMetadataSample setObjectMetadataSample = new SetObjectMetadataSample();

        var key        = "key-to-add";
        var value      = "value-to-add";
        var objectName = "HelloSetObjectMetadata.txt";

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect(objectName));

        setObjectMetadataSample.SetObjectMetadata(_fixture.BucketNameGeneric, objectName, key, value);

        var file = getMetadataSample.GetMetadata(_fixture.BucketNameGeneric, objectName);

        Assert.Contains(file.Metadata, m => m.Key == key && m.Value == value);
    }
    public void TestSetEventBasedHold()
    {
        ReleaseEventBasedHoldSample releaseEventBasedHoldSample = new ReleaseEventBasedHoldSample();
        SetEventBasedHoldSample     setEventBasedHoldSample     = new SetEventBasedHoldSample();
        UploadFileSample            uploadFileSample            = new UploadFileSample();
        GetMetadataSample           getMetadataSample           = new GetMetadataSample();

        uploadFileSample.UploadFile(_bucketFixture.BucketNameGeneric, _bucketFixture.FilePath, _bucketFixture.Collect("SetEventBasedHold.txt"));

        // Set event based hold.
        setEventBasedHoldSample.SetEventBasedHold(_bucketFixture.BucketNameGeneric, "SetEventBasedHold.txt");
        var metadata = getMetadataSample.GetMetadata(_bucketFixture.BucketNameGeneric, "SetEventBasedHold.txt");

        Assert.True(metadata.EventBasedHold);

        // Release event based hold.
        releaseEventBasedHoldSample.ReleaseEventBasedHold(_bucketFixture.BucketNameGeneric, "SetEventBasedHold.txt");
    }
    public void ObjectCsekToCmek()
    {
        GenerateEncryptionKeySample generateEncryptionKeySample = new GenerateEncryptionKeySample();
        UploadEncryptedFileSample   uploadEncryptedFileSample   = new UploadEncryptedFileSample();
        GetMetadataSample           getMetadataSample           = new GetMetadataSample();
        ObjectCsekToCmekSample      objectCsekToCmekSample      = new ObjectCsekToCmekSample();

        // Upload with key
        var    objectName = "HelloObjectCsekToCmek.txt";
        string key        = generateEncryptionKeySample.GenerateEncryptionKey();

        uploadEncryptedFileSample.UploadEncryptedFile(key, _fixture.BucketNameRegional, _fixture.FilePath, _fixture.Collect(objectName));

        // Change key type to Cmek
        objectCsekToCmekSample.ObjectCsekToCmek(_fixture.ProjectId, _fixture.BucketNameRegional, objectName,
                                                key, _fixture.KmsKeyLocation, _fixture.KmsKeyRing, _fixture.KmsKeyName);

        // Verify Kms key Name
        var obj = getMetadataSample.GetMetadata(_fixture.BucketNameRegional, objectName);

        Assert.Contains(_fixture.KmsKeyName, obj.KmsKeyName);
    }
Esempio n. 11
0
    public void MakePublic()
    {
        MakePublicSample  makePublicSample  = new MakePublicSample();
        UploadFileSample  uploadFileSample  = new UploadFileSample();
        GetMetadataSample getMetadataSample = new GetMetadataSample();

        uploadFileSample.UploadFile(_bucketFixture.BucketNameGeneric, _bucketFixture.FilePath, _bucketFixture.Collect("HelloMakePublic.txt"));

        var metadata = getMetadataSample.GetMetadata(_bucketFixture.BucketNameGeneric, "HelloMakePublic.txt");

        Assert.NotNull(metadata.MediaLink);

        // Before making the file public, fetching the medialink should throw an exception.
        WebClient webClient = new WebClient();

        Assert.Throws <WebException>(() => webClient.DownloadString(metadata.MediaLink));

        // Make it public and try fetching again.
        var medialink = makePublicSample.MakePublic(_bucketFixture.BucketNameGeneric, "HelloMakePublic.txt");
        var text      = webClient.DownloadString(medialink);

        Assert.Equal(File.ReadAllText(_bucketFixture.FilePath), text);
    }
    public void ObjectRotateEncryptionKey()
    {
        GenerateEncryptionKeySample     generateEncryptionKeySample     = new GenerateEncryptionKeySample();
        UploadEncryptedFileSample       uploadEncryptedFileSample       = new UploadEncryptedFileSample();
        DownloadEncryptedFileSample     downloadEncryptedFileSample     = new DownloadEncryptedFileSample();
        GetMetadataSample               getMetadataSample               = new GetMetadataSample();
        ObjectRotateEncryptionKeySample objectRotateEncryptionKeySample = new ObjectRotateEncryptionKeySample();

        // Upload with key
        var    objectName = "HelloObjectRotateEncryptionKey.txt";
        string currentKey = generateEncryptionKeySample.GenerateEncryptionKey();
        string newKey     = generateEncryptionKeySample.GenerateEncryptionKey();

        uploadEncryptedFileSample.UploadEncryptedFile(currentKey, _fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect(objectName));

        // Rotate key
        objectRotateEncryptionKeySample.ObjectRotateEncryptionKey(_fixture.BucketNameGeneric, objectName, currentKey, newKey);

        // Download with new key to verify key has changed
        downloadEncryptedFileSample.DownloadEncryptedFile(newKey, _fixture.BucketNameGeneric, objectName, "Downloaded-encrypted-object.txt");
        Assert.Equal(File.ReadAllText(_fixture.FilePath), File.ReadAllText("Downloaded-encrypted-object.txt"));
        File.Delete("Downloaded-encrypted-object.txt");
    }