我是 iOS 和 AWS 的新手...
我一直在尝试通过某种方式从我在 AWS 上的 SDB 检索数据...
首先,我想连接到 aws,然后我想从某个域中检索所有内容并将其放入一个数组中。并读出数组里面的内容。
// Connecting to SDB
AmazonSimpleDBClient *sdbClient = [[AmazonSimpleDBClient alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY];
@try {
SimpleDBSelectRequest *selectRequest = [[SimpleDBSelectRequest alloc] initWithSelectExpression:@"select * from somedomain"];
selectRequest.consistentRead = YES;
if (self.nextToken != nil) {
selectRequest.nextToken = self.nextToken;
}
SimpleDBSelectResponse *selectResponse = [sdbClient select:selectRequest];
self.nextToken = selectResponse.nextToken;
NSLog(self.nextToken);
}
@catch (NSException *exception) {
NSLog(@"Exception : [%@]", exception);
}
在此先感谢大家。我感谢所有的帮助。 :)
最佳答案
这里有一些在 java 中列出域、创建域、添加属性、删除属性和列表项的帮助。
public boolean checkSubscriptionToAmazonSimpleDB(String accessKey, String secretKey) {
try {
basicAWSCredentials = new BasicAWSCredentials(accessKey, secretKey);
amazonSimpleDBClient = new AmazonSimpleDBClient(basicAWSCredentials);
String sNextToken = "";
boolean bDomainExist = false;
do {
ListDomainsRequest listDomainsRequest = new ListDomainsRequest();
listDomainsRequest.setMaxNumberOfDomains(100);
listDomainsRequest.setNextToken(sNextToken);
ListDomainsResult listDomainsResult = amazonSimpleDBClient.listDomains(listDomainsRequest);
sNextToken = listDomainsResult.getNextToken();
List<String> list = listDomainsResult.getDomainNames();
for (String domain : list) {
System.out.println(domain);
}
} while (sNextToken != null && bDomainExist == false);
} catch (Throwable ex) {
System.out.println(ex.toString());
return false;
}
return true;
}
public void createDomain(String domain) {
CreateDomainRequest createDomainRequest = new CreateDomainRequest(domain);
amazonSimpleDBClient.createDomain(createDomainRequest);
}
private boolean addItem(String domain, String itemName) {
try {
PutAttributesRequest putAttributesRequest = new PutAttributesRequest();
putAttributesRequest.setDomainName(domain);
putAttributesRequest.setItemName(itemName);
List<ReplaceableAttribute> list = new ArrayList<ReplaceableAttribute>();
list.add(new ReplaceableAttribute("A", "a", true));
list.add(new ReplaceableAttribute("B", "c", true));
list.add(new ReplaceableAttribute("C", "b", true));
putAttributesRequest.setAttributes(list);
amazonSimpleDBClient.putAttributes(putAttributesRequest);
} catch (Throwable ex) {
System.out.println(ex.toString());
return false;
}
return true;
}
private boolean deleteItem(String domain, String itemName) {
try {
DeleteAttributesRequest deleteAttributesRequest = new DeleteAttributesRequest();
deleteAttributesRequest.setDomainName(domain);
deleteAttributesRequest.setItemName(itemName);
amazonSimpleDBClient.deleteAttributes(deleteAttributesRequest);
} catch (Throwable ex) {
System.out.println(ex.toString());
return false;
}
return true;
}
public void getListOfArchived(String domainname, String pagesize, String nextToken) {
SelectResult selectResult = null;
String sNextToken = null;
String query = null;
do {
query = "select * from " + domainname;
SelectRequest selectRequest = new SelectRequest(query);
selectRequest.setNextToken(nextToken);
selectResult = amazonSimpleDBClient.select(selectRequest);
sNextToken = selectResult.getNextToken();
List<Item> list = selectResult.getItems();
for(Item item: list){
item.getName(); // itemName
List<Attribute> listAttribute = item.getAttributes();
for(Attribute attribute:listAttribute){
attribute.getName(); // Attribute Name
attribute.getValue(); // Attribute value;
}
}
} while (sNextToken != null);
}
关于ios - 如何在 iOS SDK 中从 SimpleDB AWS 检索数据并显示它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239164/