Пример #1
0
        private static async Task UploadDirAsync()
        {
            var putRequest2 = new PutObjectRequest
            {
            };

            try
            {
                var directoryTransferUtility =
                    new TransferUtility(s3Client);

                // 1. Upload a directory.
                await directoryTransferUtility.UploadDirectoryAsync(directoryPath,
                                                                    existingBucketName);

                Console.WriteLine("Upload statement 1 completed");

                // 2. Upload only the .txt files from a directory
                //    and search recursively.
                await directoryTransferUtility.UploadDirectoryAsync(
                    directoryPath,
                    existingBucketName,
                    wildCard,
                    SearchOption.AllDirectories);

                Console.WriteLine("Upload statement 2 completed");

                // 3. The same as Step 2 and some optional configuration.
                //    Search recursively for .txt files to upload.
                var request = new TransferUtilityUploadDirectoryRequest
                {
                    BucketName    = existingBucketName,
                    Directory     = directoryPath,
                    SearchOption  = SearchOption.AllDirectories,
                    SearchPattern = wildCard
                };

                await directoryTransferUtility.UploadDirectoryAsync(request);

                Console.WriteLine("Upload statement 3 completed");
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine(
                    "Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(
                    "Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
        /// <summary>
        /// Uses an S3 multi-part transfer to upload all of the text files in
        /// a local directory to an S3 bucket.
        /// </summary>
        /// <param name="client">The initialized S3 client object used to
        /// perform the multi-part upload.</param>
        /// <param name="bucketName">The name of the bucket to which the files
        /// will be uploaded from the local directory.</param>
        /// <param name="directoryPath">The path of the local directory that
        /// contains the files to upload to the S3 bucket.</param>
        /// <param name="wildCard">The wild card used to filter the files to
        /// be uploaded.</param>
        private static async Task UploadDirAsync(
            IAmazonS3 client,
            string bucketName,
            string directoryPath,
            string wildCard)
        {
            try
            {
                var directoryTransferUtility =
                    new TransferUtility(client);

                // Upload the entire contents of a local directory to an S3
                // bucket.
                await directoryTransferUtility.UploadDirectoryAsync(
                    directoryPath,
                    bucketName);

                Console.WriteLine("Upload statement 1 completed");

                // Upload only the text files from a local directory using a
                // recursive search to find text files in child directories.
                await directoryTransferUtility.UploadDirectoryAsync(
                    directoryPath,
                    bucketName,
                    wildCard,
                    SearchOption.AllDirectories);

                Console.WriteLine("Upload statement 2 completed");

                // Performs the same as before using the
                // TransferUtilityUploadDirectoryRequest instead of individual
                // parameters.
                var request = new TransferUtilityUploadDirectoryRequest
                {
                    BucketName    = bucketName,
                    Directory     = directoryPath,
                    SearchOption  = SearchOption.AllDirectories,
                    SearchPattern = wildCard,
                };

                await directoryTransferUtility.UploadDirectoryAsync(request);

                Console.WriteLine("Upload statement 3 completed");
            }
            catch (AmazonS3Exception ex)
            {
                Console.WriteLine(
                    $"Error: {ex.Message}");
            }
        }
Пример #3
0
 public async Task UploadDirectory(string uploadDirectoryPath)
 {
     using (var fileTransferUtility = new TransferUtility(client))
     {
         await fileTransferUtility.UploadDirectoryAsync(uploadDirectoryPath, BucketName);
     }
 }
    private static async void UploadAsync(RegionEndpoint bucketRegion, string bucketName, string iamAccessKeyId, string iamSecretKey, string path)
    {
        try
        {
            Debug.Log("Starting upload...");
            BasicAWSCredentials credentials     = new BasicAWSCredentials(iamAccessKeyId, iamSecretKey);
            AmazonS3Client      s3Client        = new AmazonS3Client(credentials, bucketRegion);
            TransferUtility     transferUtility = new TransferUtility(s3Client);
            TransferUtilityUploadDirectoryRequest transferUtilityRequest = new TransferUtilityUploadDirectoryRequest
            {
                BucketName   = bucketName,
                Directory    = path,
                StorageClass = S3StorageClass.StandardInfrequentAccess,
                CannedACL    = S3CannedACL.PublicRead,
                SearchOption = SearchOption.AllDirectories,
            };

            await transferUtility.UploadDirectoryAsync(transferUtilityRequest);

            Debug.Log("Upload completed");
        }
        catch (AmazonS3Exception e)
        {
            Debug.LogError("Error encountered on server when writing an object: " + e.Message);
        }
        catch (Exception e)
        {
            Debug.LogError("Unknown encountered on server when writing an object: " + e.Message);
        }
    }
Пример #5
0
        private async Task SaveLogsToS3(string finalLogDir)
        {
            var bucketName   = s3BucketName;
            var bucketKey    = s3BucketKey;
            var bucketRegion = RegionEndpoint.GetBySystemName(awsRegion);

            LogWriter.LogInfo("AWS.S3", "Beginning S3 Upload");
            s3Client = new AmazonS3Client(bucketRegion);
            var transferUtility = new TransferUtility(s3Client);
            await transferUtility.UploadDirectoryAsync(finalLogDir, bucketName);

            LogWriter.LogInfo("AWS.S3", "Completed S3 Upload");
        }
Пример #6
0
        public async Task RunCode()
        {
            var client = new AmazonS3Client();

            Console.Write("Upload yapmak istediğiniz bucket ismini giriniz : ");
            var bucketName = Console.ReadLine();

            Console.Write("Upload yapmak istediğiniz nedir ? [Dosya = 1 , Klasör = 2] : ");
            var fileType = Console.ReadLine();

            Console.WriteLine();

            Console.Write("Upload yapmak istediğiniz dosya/klasör public olarak kullanılabilsin mi ? [y/n] : ");
            var accessType = Console.ReadLine();

            Console.WriteLine();

            Console.Write("Upload yapmak istediğiniz dosya/klasör tam yolunu giriniz : ");
            var filePath = Console.ReadLine();

            #region Bucket Upload için kullanılan Kod Bloğu
            var transferUtility = new TransferUtility(client);

            switch (fileType)
            {
            // Dosya yüklemek için kullanılan alan
            case "1":
                var transferForFileRequest = new TransferUtilityUploadRequest {
                    FilePath   = filePath,
                    BucketName = bucketName,
                    CannedACL  = (accessType == "y") ? S3CannedACL.PublicRead : S3CannedACL.Private
                };
                await transferUtility.UploadAsync(transferForFileRequest);

                break;

            // Klasör yüklemek için kullanılan alan
            case "2":
                var transferForFolderRequest = new TransferUtilityUploadDirectoryRequest {
                    Directory  = filePath,
                    BucketName = bucketName,
                    CannedACL  = (accessType == "y") ? S3CannedACL.PublicRead : S3CannedACL.Private
                };
                await transferUtility.UploadDirectoryAsync(transferForFolderRequest);

                break;
            }

            #endregion
        }
Пример #7
0
        public static async Task UploadDirectory(string directory, string bucketName, string keyPrefix, bool recursive = false, Credentials credentials = null)
        {
            var request = new TransferUtilityUploadDirectoryRequest
            {
                BucketName   = bucketName,
                Directory    = directory,
                KeyPrefix    = keyPrefix,
                SearchOption = recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly
            };

            request.UploadDirectoryFileRequestEvent += (sender, args) =>
                                                       Console.WriteLine($"Uploading \"{args.UploadRequest.FilePath}\" to S3 bucket \"{bucketName}\"...");

            using (var transferUtility = new TransferUtility(GetClient(credentials)))
            {
                await transferUtility.UploadDirectoryAsync(request);
            }
        }
Пример #8
0
        public async Task UploadDirectoryWithTagsTest()
        {
            for (int i = 1; i < 4; i++)
            {
                UtilityMethods.GenerateFile(Path.Combine(basePath, "tempfile-" + i), MEG_SIZE / i);
            }

            var uploadRequest = new TransferUtilityUploadDirectoryRequest
            {
                BucketName = testBucketName,
                Directory  = basePath,
                TagSet     = new List <Tag>
                {
                    new Tag
                    {
                        Key   = "hello",
                        Value = "world"
                    }
                }
            };

            using (var transferUtility = new TransferUtility(Client))
            {
                await transferUtility.UploadDirectoryAsync(uploadRequest);
            }

            var objects = Client.ListObjectsAsync(new ListObjectsRequest
            {
                BucketName = testBucketName
            }).Result.S3Objects;

            foreach (var obj in objects)
            {
                var tags = Client.GetObjectTaggingAsync(new GetObjectTaggingRequest
                {
                    BucketName = testBucketName,
                    Key        = obj.Key
                }).Result.Tagging;

                Assert.Equal(1, tags.Count);
                Assert.Equal("hello", tags[0].Key);
                Assert.Equal("world", tags[0].Value);
            }
        }
Пример #9
0
        // s3 upload directory
        private static async Task UploadDirAsync(IAmazonS3 s3Client, string localDirectory, string s3Path)
        {
            try
            {
                // create the directoryTransferUtility object
                var directoryTransferUtility = new TransferUtility(s3Client);

                // Upload a directory
                //await directoryTransferUtility.UploadDirectoryAsync(localDirectory, s3Path, wildCard, SearchOption.AllDirectories);
                await directoryTransferUtility.UploadDirectoryAsync(localDirectory, s3Path);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
Пример #10
0
        public async Task UploadDirectory(string path, Action <float> progressCallback, string pattern = "*")
        {
            LastActionSuccessful = true;
            await CarryOutAWSTask(async() =>
            {
                TransferUtility fileTransferUtility = new TransferUtility(Client);
                TransferUtilityUploadDirectoryRequest uploadRequest = new TransferUtilityUploadDirectoryRequest
                {
                    BucketName = S3BucketName,
                    Directory  = path,
                    // Amazon-only: StorageClass = S3StorageClass.StandardInfrequentAccess,
                    CannedACL     = S3CannedACL.PublicRead,
                    SearchPattern = pattern,
                    SearchOption  = SearchOption.AllDirectories,
                };

                uploadRequest.UploadDirectoryProgressEvent += (sender, e) => { progressCallback((float)e.TransferredBytes / e.TotalBytes); };
                await fileTransferUtility.UploadDirectoryAsync(uploadRequest);
                progressCallback(1);
            }, "storing directory");
        }
Пример #11
0
        public async Task UploadDirectory(string path, Action <float> progressCallback)
        {
            await CarryOutAWSTask(async() =>
            {
                var fileTransferUtility = new TransferUtility(Client);
                var uploadRequest       = new TransferUtilityUploadDirectoryRequest
                {
                    BucketName = S3BucketName,
                    Directory  = path,
                    // Amazon-only: StorageClass = S3StorageClass.StandardInfrequentAccess,
                    CannedACL    = S3CannedACL.PublicRead,
                    SearchOption = SearchOption.AllDirectories,
                };

                uploadRequest.UploadDirectoryProgressEvent += new EventHandler <UploadDirectoryProgressArgs>((sender, e) =>
                {
                    progressCallback((float)e.TransferredBytes / e.TotalBytes);
                });
                await fileTransferUtility.UploadDirectoryAsync(uploadRequest);
                progressCallback(1);
            }, "storing directory");
        }
        public async Task <bool> UploadIndexFileAndDirectory(string file, string directory, OVEAssetModel asset)
        {
            _logger.LogInformation($"about to upload index {file} and directory {directory}");

            using (var fileTransferUtility = new TransferUtility(GetS3Client(_configuration))) {
                // upload the index file
                var assetRootFolder = Path.GetDirectoryName(asset.StorageLocation);

                var filesKeyPrefix = assetRootFolder + "/" + new DirectoryInfo(directory).Name + "/"; // upload to the right folder

                TransferUtilityUploadRequest req = new TransferUtilityUploadRequest {
                    BucketName = asset.Project,
                    Key        = assetRootFolder + "/" + Path.GetFileName(file),
                    FilePath   = file
                };
                await fileTransferUtility.UploadAsync(req);

                // upload the tile files

                TransferUtilityUploadDirectoryRequest request =
                    new TransferUtilityUploadDirectoryRequest()
                {
                    KeyPrefix     = filesKeyPrefix,
                    Directory     = directory,
                    BucketName    = asset.Project,
                    SearchOption  = SearchOption.AllDirectories,
                    SearchPattern = "*.*"
                };

                await fileTransferUtility.UploadDirectoryAsync(request);

                _logger.LogInformation($"finished upload for index {file} and directory {directory}");

                return(true);
            }
        }
Пример #13
0
 public async Task UploadObjects(string contentFolder)
 {
     var transfer = new TransferUtility(client);
     await transfer.UploadDirectoryAsync(contentFolder, AWS_S3BucketName, "*", SearchOption.AllDirectories);
 }