コード例 #1
0
        /// <summary>
        /// get object keys
        /// </summary>
        /// <param name="prefix"></param>
        /// <returns></returns>
        public async Task <IEnumerable <string> > GetObjectKeysAsync(string prefix)
        {
            var objectKeys = new List <string>();

            using (var client = new AWSS3Client(_accessKeyId, _secretAccessKey, _region))
            {
                string continuationToken = null;
                var    isTruncated       = true;
                while (isTruncated)
                {
                    var result = await client.ListObjectsV2Async(_backetName, prefix, continuationToken);

                    if (result.S3Objects != null && result.S3Objects.Any())
                    {
                        objectKeys.AddRange(result.S3Objects.Select(s3Object => s3Object.Key).ToArray());
                    }
                    isTruncated       = result.IsTruncated;
                    continuationToken = result.NextContinuationToken;
                }
            }
            return(objectKeys);
        }