我正在尝试从我们的 Storage Gateway 中获取快照列表并将它们放入 JTable 中。但是,当我使用 AWS Java API 检索快照列表时,我只能检索看似由 Amazon 发布的公共快照。当我将 DescribeSnapshotsRequest.setOwnerIds() 设置为包含“self”时,列表为空。
这是有问题的代码:
private void createTable() {
Object[][] data = null;
String[] columns = new String[]{"Snapshot ID", "Owner ID", "Snapshot Date"};
DescribeSnapshotsRequest req = new DescribeSnapshotsRequest();
req.setOwnerIds(Arrays.<String>asList("self"));
try {
snapshots = ec2Client.describeSnapshots(req).getSnapshots();
data = new Object[snapshots.size()][3];
int i = 0;
for(Snapshot item : snapshots) {
data[i][0] = item.getSnapshotId();
data[i][1] = item.getOwnerId();
data[i][2] = item.getStartTime();
i++;
}
} catch(Exception e) {
System.out.println("Invalid Credentials!");
}
table = new JTable(data, columns);
table.setAutoCreateRowSorter(true);
}
除非我删除 DescribeSnapshotsRequest 或将所有者 ID 设置为“amazon”,否则列表快照为空。
长话短说,为什么我不能从 Storage Gateway 访问我的私有快照?