当前位置: 首页>>代码示例>>C#>>正文


C# IAmazonS3.ListObjects方法代码示例

本文整理汇总了C#中IAmazonS3.ListObjects方法的典型用法代码示例。如果您正苦于以下问题:C# IAmazonS3.ListObjects方法的具体用法?C# IAmazonS3.ListObjects怎么用?C# IAmazonS3.ListObjects使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IAmazonS3的用法示例。


在下文中一共展示了IAmazonS3.ListObjects方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SetupForObjectModification

        /// <summary>
        /// Sets up the request needed to make an exact copy of the object leaving the parent method
        /// the ability to change just the attribute being requested to change.
        /// </summary>
        /// <param name="bucketName"></param>
        /// <param name="key"></param>
        /// <param name="version"></param>
        /// <param name="s3Client"></param>
        /// <param name="copyRequest"></param>
        /// <param name="putACLRequest"></param>
        static void SetupForObjectModification(IAmazonS3 s3Client, string bucketName, string key, string version, 
            out CopyObjectRequest copyRequest, out PutACLRequest putACLRequest)
        {
            // Get the existing ACL of the object
            GetACLRequest getACLRequest = new GetACLRequest();
            getACLRequest.BucketName = bucketName;
            getACLRequest.Key = key;
            if (version != null)
                getACLRequest.VersionId = version;
            GetACLResponse getACLResponse = s3Client.GetACL(getACLRequest);


            // Set the object's original ACL back onto it because a COPY
            // operation resets the ACL on the destination object.
            putACLRequest = new PutACLRequest();
            putACLRequest.BucketName = bucketName;
            putACLRequest.Key = key;
            putACLRequest.AccessControlList = getACLResponse.AccessControlList;


            ListObjectsResponse listObjectResponse = s3Client.ListObjects(new ListObjectsRequest
            {
                BucketName = bucketName,
                Prefix = key,
                MaxKeys = 1
            });

            if (listObjectResponse.S3Objects.Count != 1)
            {
                throw new InvalidOperationException("No object exists with this bucket name and key.");
            }

            GetObjectMetadataRequest getMetaRequest = new GetObjectMetadataRequest()
            {
                BucketName = bucketName,
                Key = key
            };
            GetObjectMetadataResponse getMetaResponse = s3Client.GetObjectMetadata(getMetaRequest);

            // Set the storage class on the object
            copyRequest = new CopyObjectRequest();
            copyRequest.SourceBucket = copyRequest.DestinationBucket = bucketName;
            copyRequest.SourceKey = copyRequest.DestinationKey = key;
            copyRequest.StorageClass = listObjectResponse.S3Objects[0].StorageClass == "STANDARD" ? S3StorageClass.Standard : S3StorageClass.ReducedRedundancy;
            if (version != null)
                copyRequest.SourceVersionId = version;

            copyRequest.WebsiteRedirectLocation = getMetaResponse.WebsiteRedirectLocation;
            copyRequest.ServerSideEncryptionMethod = getMetaResponse.ServerSideEncryptionMethod;
        }
开发者ID:wmatveyenko,项目名称:aws-sdk-net,代码行数:60,代码来源:AmazonS3Util.Operations.cs

示例2: QuotaDelete

        private long QuotaDelete(string domain, IAmazonS3 client, string key)
        {
            if (QuotaController != null)
            {
                var responce = client.ListObjects(new ListObjectsRequest
                {
                    BucketName = _bucket,
                    Prefix = key
                });

                if (responce.S3Objects != null && responce.S3Objects.Count > 0)
                {
                    var size = Convert.ToInt64(responce.S3Objects[0].Size);
                    QuotaController.QuotaUsedDelete(_modulename, domain, _dataList.GetData(domain), size);
                    return size;
                }
            }
            return 0;
        }
开发者ID:vipwan,项目名称:CommunityServer,代码行数:19,代码来源:S3Storage.cs

示例3: ListingObjects

        //Picto Uploader- component to insert pictogramas from amazon into DataBase
        static void ListingObjects(IAmazonS3 client)
        {
            ListObjectsRequest list = new ListObjectsRequest
            {
                BucketName = "pictograms",
                MaxKeys = 2
            };

            string name;
            string url;

            using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = connectionString;
                conn.Open();
                do
                {
                    ListObjectsResponse response = client.ListObjects(list);

                    // Process response.
                    foreach (S3Object entry in response.S3Objects)
                    {
                        name = entry.Key;
                        url = server + bucket + name;
                        int index = name.IndexOf("_");

                        if (index > 0) { name = name.Substring(0, index); }

                        else
                        {
                            index = name.IndexOf(".");
                            name = name.Substring(0, index);
                        }

                        SqlCommand insertCommand = new SqlCommand("INSERT INTO Pictograms (name, url) VALUES (@0, @1)", conn);

                        insertCommand.Parameters.Add(new SqlParameter("0", name));
                        insertCommand.Parameters.Add(new SqlParameter("1", url));

                        insertCommand.ExecuteNonQuery();

                    }

                    // If response is truncated, set the marker to get the next
                    // set of keys.
                    if (response.IsTruncated)
                    {
                        list.Marker = response.NextMarker;
                    }
                    else
                    {
                        list = null;
                    }

                } while (list != null);
            }
        }
开发者ID:GSLourenco,项目名称:MyLastVersion,代码行数:58,代码来源:PictoUploader.cs

示例4: DeleteImageArtifacts

        /// <summary>
        /// Deletes the artifacts associated with an import task using the bucket name
        /// and key prefix to the artifacts in Amazon S3. No check is performed to
        /// determine whether the associated conversion task is in progress.
        /// </summary>
        /// <param name="s3Client">
        /// An Amazon S3 client for the operation to use. This should have been constructed
        /// using credentials that have access to the bucket containing the image file
        /// artifacts and be scoped to the region containing the bucket.
        /// </param>
        /// <param name="bucketName">The name of the bucket containing the artifacts</param>
        /// <param name="keyPrefix">The common key prefix of the artifacts</param>
        /// <param name="progressCallback">Optional progress callback</param>
        public static void DeleteImageArtifacts(IAmazonS3 s3Client, 
                                                string bucketName, 
                                                string keyPrefix,
                                                CleanupProgressCallback progressCallback)
        {
            // build the full collection of keys to be deleted so that any progress
            // indicator managed by the caller is accurate
            SendProgressNotification(progressCallback, "Collating keys to image file artifacts", null);

            var artifactKeys = new List<string>();
            string marker = null;
            do
            {
                var listResponse = s3Client.ListObjects(new ListObjectsRequest
                {
                    BucketName = bucketName,
                    Prefix = keyPrefix,
                    Marker = marker
                });
                artifactKeys.AddRange(listResponse.S3Objects.Select(o => o.Key));
                marker = listResponse.NextMarker;
            } while (!string.IsNullOrEmpty(marker));

            if (artifactKeys.Count == 0)
            {
                var msg = string.Format(CultureInfo.InvariantCulture,
                                        "Found no image file artifacts with key prefix '{0}' to delete in bucket '{1}'.",
                                        keyPrefix,      
                                        bucketName);
                SendProgressNotification(progressCallback, msg, null);
                return;
            }

            var deletionMsg = string.Format(CultureInfo.InvariantCulture,
                                            "Deleting {0} image file artifacts (key prefix '{1}', bucket '{2}').", 
                                            artifactKeys.Count,
                                            keyPrefix,
                                            bucketName);
            SendProgressNotification(progressCallback, deletionMsg, 0);

            var index = 0;
            var processed = 0;
            do
            {
                var request = new DeleteObjectsRequest { BucketName = bucketName };
                while (request.Objects.Count < 1000 && index < artifactKeys.Count)
                {
                    request.Objects.Add(new KeyVersion { Key = artifactKeys[index++] });
                }

                s3Client.DeleteObjects(request);
                processed += request.Objects.Count;

                SendProgressNotification(progressCallback, deletionMsg, processed/artifactKeys.Count * 100);

            } while (processed < artifactKeys.Count);
        }
开发者ID:wmatveyenko,项目名称:aws-sdk-net,代码行数:70,代码来源:ImportCleanup.cs


注:本文中的IAmazonS3.ListObjects方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。