【发布时间】:2020-11-04 08:25:55
【问题描述】:
使用 C# 和 amazon .Net core,能够列出 amazon S3 文件夹中的所有文件,如下所示:
public async Task<string> GetMenuUrl(entities.Restaurant restaurant)
{
AmazonS3Client s3Client = new AmazonS3Client(_appSettings.AWSPublicKey, _appSettings.AWSPrivateKey, Amazon.RegionEndpoint.APSoutheast2);
string imagePath;
string restaurantName = trimSpecialCharacters(restaurant.Name);
int restaurantId = restaurant.RestaurantId;
ListObjectsRequest listRequest = new ListObjectsRequest();
ListObjectsResponse listResponse;
imagePath = $"Business_menu/{restaurantId}/";
listRequest.BucketName = _appSettings.AWSS3BucketName;
listRequest.Prefix = imagePath;
do
{
listResponse = await s3Client.ListObjectsAsync(listRequest);
} while (listResponse.IsTruncated);
var files = listResponse.S3Objects.Select(x => x.Key);
var arquivos = files.Select(x => Path.GetFileName(x)).ToList();
return arquivos.ToString();
}
目前,arquivos 返回一个包含两个图像(image1.jpg、image2.jpg)的列表,这与预期的一样,然后我将其作为字符串返回。
但是当我去从另一个函数调用这个方法时。
public async Task<VenueMenuResponse> GetVenueMenuUrl(int restaurantId)
{
var restaurant = await _context.Restaurant.Where(w => w.RestaurantId == restaurantId).FirstOrDefaultAsync();
var result = await _storyService.GetMenuUrl(restaurant);
var response = new MenuResponse() //just contains string variable called MenuUrl
{
MenuUrl = result
};
return response;
}
它返回这个:
{
"menuUrl": "System.Collections.Generic.List`1[System.String]"
}
当我希望它返回时
{
"menuUrl": "Image1.jpg"
},
{
"menuUrl": "Image2.jpg"
}
【问题讨论】:
标签: c# asp.net-core amazon-s3