如何连接到iOS应用程序中的EC2实例

我有一个AWS EC2实例和一个我创build的应用程序。 该应用程序适用于偏头痛的人(跟踪信息,告诉他们触发器是什么)。 现在,我希望能够将来自我的应用程序的用户input发送到服务器,以便我可以看到趋势。 我很难连接到服务器,并找出如何将文件写入服务器。

我写了这个方法:

- (void) sendDataToServer:(NSString *)url :(NSString *)key : (NSString *) content{ // define your form fields here: //NSString *content = @"field1=42&field2=Hello"; NSString *address = [NSString stringWithFormat:@"ssh -i %@ %@", key, url]; NSLog(@"%@", address); NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:address]]; [request setHTTPMethod:@"POST"]; NSData *contentData = [content dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:contentData]; NSString *postLength = [NSString stringWithFormat:@"%d",[contentData length]]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; // generates an autoreleased NSURLConnection NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; if (conn){ NSLog(@"connection"); } //[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { //[self doSomethingWithData:data]; if (error){ NSLog(@"ERROR"); } }]; } 

我把我的密钥对中的私钥放入应用程序中。 我将如何使用它来连接? 我不应该使用我的私钥吗? 我应该这样做吗?

我应该这样做吗?

绝对是100%,是的。 你不想让人们进入你的服务器, 尤其是通过将你的私钥embedded到应用程序二进制文件中。 有人很容易得到它,然后破坏你的服务器。

不要这样做。

相反 ,我会得到一个Web服务器,比如在你的实例上运行的Apache (这很简单),然后编写一个应用程序(使用PHP,Rails(带Passenger),Python等)将文件保存到服务器的硬盘上。 您还需要获得一个弹性IP地址 ,以保持不变,正如上面提到的那样。

在您的iOS应用程序中,您需要发送POST请求到您的服务器。 请参阅在iOS上发送HTTP POST请求 ,这基本上是您现在正在执行的操作。

不要发布您的私人SSH密钥。 这是私人的一个很好的理由。

Interesting Posts