amazon-web-services - 如何从桶中只获取一个对象?
问题描述
我一次只需要从 S3 存储桶中获取一个对象。我只找到了获取存储桶中所有对象的 API。有没有办法只获取一个?我将使用某个位置或索引一次获取一个对象。
result, err := w.Client.ListObjectsV2(ctx, input)
if err != nil {
fmt.Println("Got an error retrieving objects:")
fmt.Println(err)
}
for _, item := range result.Contents {
fmt.Println("Name: ", *item.Key)
fmt.Println("Last modified: ", *item.LastModified)
fmt.Println("Size: ", item.Size)
fmt.Println("Storage class: ", item.StorageClass)
fmt.Println("")
}
解决方案
您可以通过在ListObjectsV2Input中指示 MaxKeys=1 来请求返回最大数量的 S3 密钥:
MaxKeys:设置响应中返回的最大键数。默认情况下,该操作最多返回 1,000 个键名。响应可能包含更少的键,但永远不会包含更多。
要获取下一个 S3 密钥,您可以在后续的 ListObjectsV2 请求中使用StartAfter
或使用。ContinuationToken
推荐阅读
- java - Java Spring Kafka 模板生产者在代理重启时丢失了消息
- python - MCA() 返回“数组不得包含 infs 或 nans”
- sql-server - EF 6.4 代码优先和 SQL Server 兼容级别
- html - 页脚下方不必要的空间
- python-3.x - 将矩阵的每个元素乘以向量(或数组)
- tensorflow - 加载 tensorflow.keras 模型时如何加载损失函数?
- html - 是否可以从 for 循环中使用 Alpine.js 在 img 中的 src 中注入变量?
- swift - 将 SwiftUI 视图设置为始终保持一种尺寸
- php - PHP为不同的输入提供相同的输出
- javascript - 从 Electron ipcRenderer.invoke() 访问返回对象/值