public static async Task MainUploadManager()
        {
            logger.Info("Starting Upload Manager Example");
            var provider = new ConfigFileAuthenticationDetailsProvider("DEFAULT");
            var osClient = new ObjectStorageClient(provider, new ClientConfiguration()
            {
                TimeoutMillis = 1000 * 1000 // 1000 secs. Setting large timeouts is required for uploading large objects to avoid httpclient timeout exceptions.
            });

            var putObjectRequest = new PutObjectRequest()
            {
                BucketName    = Environment.GetEnvironmentVariable("BUCKET_NAME"),
                NamespaceName = Environment.GetEnvironmentVariable("NAMESPACE_NAME"),
                ObjectName    = Environment.GetEnvironmentVariable("OBJECT_NAME"),
                PutObjectBody = System.IO.File.OpenRead(Environment.GetEnvironmentVariable("FILE_TO_UPLOAD")),
                ContentLength = Convert.ToInt64(Environment.GetEnvironmentVariable("CONTENT_LENGTH")),
                ContentType   = Environment.GetEnvironmentVariable("CONTENT_TYPE")
            };

            var uploadConfiguration = new UploadConfiguration()
            {
                AllowMultipartUploads = true
            };

            var uploadManager = new UploadManager(osClient, uploadConfiguration);
            var uploadRequest = new UploadManager.UploadRequest(putObjectRequest)
            {
                AllowOverwrite = true,
                OnProgress     = OnProgres
            };

            var uploadResponse = await uploadManager.Upload(uploadRequest);

            logger.Info(uploadResponse);

            var headObject = await osClient.HeadObject(new HeadObjectRequest()
            {
                BucketName    = Environment.GetEnvironmentVariable("BUCKET_NAME"),
                NamespaceName = Environment.GetEnvironmentVariable("NAMESPACE_NAME"),
                ObjectName    = Environment.GetEnvironmentVariable("OBJECT_NAME")
            });

            logger.Info($"{headObject.ETag}");
            osClient.Dispose();
        }
Example #2
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            PutObjectRequest request;
            UploadManager    uploadManager;

            UploadManager.UploadRequest uploadRequest;
            UploadConfiguration         uploadConfiguration;

            if (ParameterSetName.Equals(FromFileSet))
            {
                PutObjectBody = System.IO.File.OpenRead(GetAbsoluteFilePath(PutObjectBodyFromFile));
            }

            try
            {
                request = new PutObjectRequest
                {
                    NamespaceName           = NamespaceName,
                    BucketName              = BucketName,
                    ObjectName              = ObjectName,
                    ContentLength           = ContentLength,
                    PutObjectBody           = PutObjectBody,
                    IfMatch                 = IfMatch,
                    IfNoneMatch             = IfNoneMatch,
                    OpcClientRequestId      = OpcClientRequestId,
                    Expect                  = Expect,
                    ContentMD5              = ContentMD5,
                    ContentType             = ContentType,
                    ContentLanguage         = ContentLanguage,
                    ContentEncoding         = ContentEncoding,
                    ContentDisposition      = ContentDisposition,
                    CacheControl            = CacheControl,
                    OpcSseCustomerAlgorithm = OpcSseCustomerAlgorithm,
                    OpcSseCustomerKey       = OpcSseCustomerKey,
                    OpcSseCustomerKeySha256 = OpcSseCustomerKeySha256,
                    StorageTier             = StorageTier,
                    OpcMeta                 = OpcMeta
                };

                uploadConfiguration = new UploadConfiguration
                {
                    LengthPerUploadPartInMiB  = LengthPerUploadPartInMiB,
                    AllowMultipartUploads     = AllowMultipartUploads,
                    ParallelUploadCount       = ParallelUploadCount,
                    DisableAutoAbort          = DisableAutoAbort,
                    EnforceMd5MultipartUpload = EnforceMd5MultipartUpload,
                    EnforceMd5Upload          = EnforceMd5Upload
                };

                uploadManager = new UploadManager(client, uploadConfiguration);
                uploadRequest = new UploadManager.UploadRequest(request);

                uploadResponse = uploadManager.Upload(uploadRequest).GetAwaiter().GetResult();
                WriteOutput(uploadResponse);
                FinishProcessing(uploadResponse);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }