Example #1
0
    public void ListFilesWithPrefix()
    {
        ListFilesWithPrefixSample listFilesWithPrefixSample = new ListFilesWithPrefixSample();
        UploadFileSample          uploadFileSample          = new UploadFileSample();

        // Upload 4 files.
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("a/1.txt"));
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("a/2.txt"));
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("b/2.txt"));
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("a/b/3.txt"));

        var files = listFilesWithPrefixSample.ListFilesWithPrefix(_fixture.BucketNameGeneric, "a/", null).ToList();

        Assert.Contains(files, c => c.Name == "a/1.txt");
        Assert.Contains(files, c => c.Name == "a/2.txt");
        Assert.Contains(files, c => c.Name == "a/b/3.txt");
    }
    public void ListFiles()
    {
        ListFilesSample  listFilesSample  = new ListFilesSample();
        UploadFileSample uploadFileSample = new UploadFileSample();

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("HelloListObjectsTest.txt"));

        var files = listFilesSample.ListFiles(_fixture.BucketNameGeneric);

        Assert.Contains(files, c => c.Name == "HelloListObjectsTest.txt");
    }
    public void UploadFile()
    {
        UploadFileSample uploadFileSample = new UploadFileSample();
        ListFilesSample  listFilesSample  = new ListFilesSample();

        // upload file
        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("UploadTest.txt"));

        var files = listFilesSample.ListFiles(_fixture.BucketNameGeneric);

        Assert.Contains(files, c => c.Name == "UploadTest.txt");
    }
Example #4
0
    public void TestUploadFileRequesterPays()
    {
        var downloadFileRequesterPaysSample = new DownloadFileRequesterPaysSample();
        UploadFileRequesterPaysSample uploadFileRequesterPaysSample = new UploadFileRequesterPaysSample();

        // Upload file request pays.
        uploadFileRequesterPaysSample.UploadFileRequesterPays(_fixture.ProjectId, _fixture.BucketNameGeneric, _fixture.FilePath,
                                                              _fixture.Collect("HelloUploadObjectRequesterPays.txt"));

        // Download file request pays.
        downloadFileRequesterPaysSample.DownloadFileRequesterPays(_fixture.ProjectId, _fixture.BucketNameGeneric, "HelloUploadObjectRequesterPays.txt", "HelloUploadObjectRequesterPays2.txt");
        Assert.Equal(File.ReadAllText(_fixture.FilePath), File.ReadAllText("HelloUploadObjectRequesterPays2.txt"));
        File.Delete("HelloUploadObjectRequesterPays2.txt");
    }
Example #5
0
    public void TestUploadEncryptedFile()
    {
        DownloadEncryptedFileSample downloadEncryptedFileSample = new DownloadEncryptedFileSample();
        UploadEncryptedFileSample   uploadEncryptedFileSample   = new UploadEncryptedFileSample();
        GenerateEncryptionKeySample generateEncryptionKeySample = new GenerateEncryptionKeySample();
        var key = generateEncryptionKeySample.GenerateEncryptionKey();

        // upload with key
        uploadEncryptedFileSample.UploadEncryptedFile(key, _fixture.BucketNameGeneric, _fixture.FilePath,
                                                      _fixture.Collect("HelloEncryptUpload.txt"));

        //download with key
        downloadEncryptedFileSample.DownloadEncryptedFile(key, _fixture.BucketNameGeneric, "HelloEncryptUpload.txt", "Hello-downloaded.txt");
        Assert.Equal(File.ReadAllText(_fixture.FilePath), File.ReadAllText("Hello-downloaded.txt"));
        File.Delete("Hello-downloaded.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 TestPrintFileAclForUser()
    {
        PrintFileAclForUserSample printFileAclForUserSample = new PrintFileAclForUserSample();
        UploadFileSample          uploadFileSample          = new UploadFileSample();
        AddFileOwnerSample        addFileOwnerSample        = new AddFileOwnerSample();

        string userEmail = _fixture.ServiceAccountEmail;

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("HelloAddObjectOwnerForUser.txt"));

        // add file owner
        addFileOwnerSample.AddFileOwner(_fixture.BucketNameGeneric, "HelloAddObjectOwnerForUser.txt", userEmail);

        // Make sure we print-acl-for-user shows us the user, but not all the ACLs.
        var fileAclForUser = printFileAclForUserSample.PrintFileAclForUser(_fixture.BucketNameGeneric, "HelloAddObjectOwnerForUser.txt", userEmail);

        Assert.All(fileAclForUser, c => Assert.Equal(c.Email, userEmail));
    }
Example #8
0
    public void TestSetEventBasedHold()
    {
        ReleaseEventBasedHoldSample releaseEventBasedHoldSample = new ReleaseEventBasedHoldSample();
        SetEventBasedHoldSample     setEventBasedHoldSample     = new SetEventBasedHoldSample();
        UploadFileSample            uploadFileSample            = new UploadFileSample();
        GetMetadataSample           getMetadataSample           = new GetMetadataSample();

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

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

        Assert.True(metadata.EventBasedHold);

        // Release event based hold.
        releaseEventBasedHoldSample.ReleaseEventBasedHold(_fixture.BucketNameGeneric, "SetEventBasedHold.txt");
    }
Example #9
0
    public async Task DownloadByteRangeAsync()
    {
        UploadFileSample             uploadFileSample        = new UploadFileSample();
        DownloadByteRangeAsyncSample downloadByteRangeSample = new DownloadByteRangeAsyncSample();

        uploadFileSample.UploadFile(
            _fixture.BucketNameGeneric, "Resources/HelloDownloadCompleteByteRange.txt",
            _fixture.Collect("HelloDownloadCompleteByteRange.txt"));

        await downloadByteRangeSample.DownloadByteRangeAsync(
            _fixture.BucketNameGeneric, "HelloDownloadCompleteByteRange.txt", 0, 20,
            "HelloDownloadCompleteByteRange.txt_0-20");

        var downloadedString = Encoding.UTF8.GetString(File.ReadAllBytes("HelloDownloadCompleteByteRange.txt_0-20"));

        Assert.Equal("\uFEFFHello Download Com", downloadedString);
        File.Delete("HelloDownloadCompleteByteRange.txt_0-20");
    }
    public void DownloadPublicFile()
    {
        MakePublicSample         makePublicSample         = new MakePublicSample();
        UploadFileSample         uploadFileSample         = new UploadFileSample();
        DownloadPublicFileSample downloadPublicFileSample = new DownloadPublicFileSample();

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("HelloDownloadPublic.txt"));

        // Make it public
        makePublicSample.MakePublic(_fixture.BucketNameGeneric, "HelloDownloadPublic.txt");

        // Try downloading without creds
        try
        {
            downloadPublicFileSample.DownloadPublicFile(_fixture.BucketNameGeneric, "HelloDownloadPublic.txt", "HelloDownloadPublic.txt");
            Assert.Equal(File.ReadAllText(_fixture.FilePath), File.ReadAllText("HelloDownloadPublic.txt"));
        }
        finally
        {
            File.Delete("HelloDownloadPublic.txt");
        }
    }
    public void PrintFileAcl()
    {
        PrintFileAclSample printFileAclSample = new PrintFileAclSample();
        UploadFileSample   uploadFileSample   = new UploadFileSample();
        AddFileOwnerSample addFileOwnerSample = new AddFileOwnerSample();

        string userEmail = _fixture.ServiceAccountEmail;

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, _fixture.FilePath, _fixture.Collect("HelloAddObjectOwner.txt"));

        // print file acl
        var fileAcl = printFileAclSample.PrintObjectAcl(_fixture.BucketNameGeneric, "HelloAddObjectOwner.txt");

        Assert.DoesNotContain(fileAcl, c => c.Email == userEmail);

        // add file owner
        addFileOwnerSample.AddFileOwner(_fixture.BucketNameGeneric, "HelloAddObjectOwner.txt", userEmail);

        // print file acl
        fileAcl = printFileAclSample.PrintObjectAcl(_fixture.BucketNameGeneric, "HelloAddObjectOwner.txt");
        Assert.Contains(fileAcl, c => c.Email == userEmail);
    }
Example #12
0
    public void MakePublic()
    {
        MakePublicSample  makePublicSample  = new MakePublicSample();
        UploadFileSample  uploadFileSample  = new UploadFileSample();
        GetMetadataSample getMetadataSample = new GetMetadataSample();

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

        var metadata = getMetadataSample.GetMetadata(_fixture.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(_fixture.BucketNameGeneric, "HelloMakePublic.txt");
        var text      = webClient.DownloadString(medialink);

        Assert.Equal(File.ReadAllText(_fixture.FilePath), text);
    }
    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);
    }
    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);
    }
Example #15
0
    public void ComposeObject()
    {
        UploadFileSample    uploadFileSample    = new UploadFileSample();
        ComposeObjectSample composeObjectSample = new ComposeObjectSample();
        DownloadFileSample  downloadFileSample  = new DownloadFileSample();

        var firstObject  = "HelloComposeObject.txt";
        var secondObject = "HelloComposeObjectAdditional.txt";
        var targetObject = "HelloComposedDownload.txt";

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, "Resources/Hello.txt", _fixture.Collect(firstObject));

        uploadFileSample.UploadFile(_fixture.BucketNameGeneric, "Resources/HelloDownloadCompleteByteRange.txt", _fixture.Collect(secondObject));

        composeObjectSample.ComposeObject(_fixture.BucketNameGeneric, firstObject, secondObject, _fixture.Collect(targetObject));

        // Download the composed file
        downloadFileSample.DownloadFile(_fixture.BucketNameGeneric, targetObject, targetObject);

        // Content from both file should exists in the downloaded file
        var targetContent = File.ReadAllText(targetObject);

        Assert.Contains(File.ReadAllText("Resources/Hello.txt"), targetContent);
        Assert.Contains(File.ReadAllText("Resources/HelloDownloadCompleteByteRange.txt"), targetContent);

        File.Delete(targetObject);
    }
    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");
    }