How do I retrieve data from SimpleDB AWS in iOS SDK and display them?
-
29-06-2021 - |
Вопрос
I'm new to iOS and AWS...
I've been trying to get some way to retrieve data from my SDB on AWS...
First I'd like to connect to the aws then I would like to retrieve everything from somedomain and put it inside an array. And read out what is inside of the array.
// 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);
}
thanks in advance guys. i appreciate all the help. :)
Решение
Here is some help to list domain, create domain, add attribute, delete attribute and list item in 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);
}
Не связан с StackOverflow