Tag: 亚马逊 s3

使用节点后端在Swift中将图像上传到AWS S3

众所周知,在任何应用程序中处理图像上传都是棘手的 如果此内容对您来说有点繁重,请看一下我有关移动后端开发的课程。 许多应用程序需要某种图像上传功能,但是实现此功能意味着解决一些不同的问题。 开发人员必须决定要将图像存储在何处以及如何安全地到达那里。 必须使用远程存储解决方案; 您不想浪费服务器的带宽或介质上的磁盘速度。 在异步Web应用程序或移动应用程序中实现此功能会带来另一个问题:如果通过服务器进行身份验证,我们是否真的必须将图像发布到服务器上,然后才将它们移动到永久位置? 亚马逊S3 Amazon Simple Storage Service(S3)可以为我们解决所有这些问题。 S3 存储桶是用于存储文件的存储单元。 在本指南中,我将向您展示如何使用Node.js后端向经过身份验证的用户发布签名的URL ,每个URL都将允许我们的Swift应用程序直接将单个文件上传到S3存储桶。 上传的图片将在其自己的URL上可用。 总览 首先,我将向您展示如何设置存储桶。 然后,我将编写一个最小的Express应用程序,该应用程序生成签名的URL-您可以自己实现身份验证(请参阅我的移动后端开发课程)。 最后,我将向您展示如何使用Alamofire检索签名的URL,然后使用该URL上传图像。 设置桶 首先,注册Amazon Web服务,然后导航到S3仪表板。 选择创建存储桶并输入名称; 我通常使用域名。 将区域设置为俄勒冈州-这对应于“ us-west-2”区域,我将在稍后的配置中使用该区域。 点击创建 。 现在,在存储桶的仪表板上,选择右上角的“ 属性 ”,然后在“ 权限”下,单击“ 添加存储桶策略” 。 存储桶策略由一些看起来很神秘的JSON组成,但是我们在此处添加的策略仅允许任何人查看存储桶中的任何文件。 复制以下内容并将其粘贴为存储桶策略,然后点击保存 。 { “ Version”:“ 2008-10-17”, “声明”:[ { “ Sid”:“ AllowPublicRead”, “效果”:“允许”, “校长”:{ “ AWS”:“ *” }, “ […]

Amazon S3 Cognito – 从图像select器上传图像 – Swift 3

我已经成功将静态图像上传到AWS服务器。 当我把它与imagepicker结合,我面临一个奇怪的问题,因为相同的图像正在上传到AWS,即使我select和命名他们不同。 代码如下: internal func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { let image = info[UIImagePickerControllerOriginalImage] as! UIImage var imageUrl = info[UIImagePickerControllerReferenceURL] as? NSURL let imageName = imageUrl?.lastPathComponent let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! let photoURL = NSURL(fileURLWithPath: documentDirectory) let localPath = photoURL.appendingPathComponent(imageName!) print("image name : \(imageName)") if !FileManager.default.fileExists(atPath: localPath!.path) { do { […]

aws s3 SDK for iOS putObjectRegquest到“新”区域不工作

首先让我说我是新的ios / xcode以及AWS。 我正在创build一个将数据写入AWS S3存储桶的应用程序。 该应用程序在创build存储桶并将对象放置到美国标准区域时起作用。 但是,当我将该地区更改为新加坡时,应用程序会成功创build存储区 – 但是,我无法将对象放入存储区,AWS不会产生任何错误或exception。 这是有问题的代码。 createBucket方法中的注释代码在新加坡成功创build了一个桶。 processGrandCentralDispatchUpload方法适用于美国标准地区,但不会将对象放到我的新加坡桶中。 – (void)createBucket { // Create the bucket. @try { //S3Region *region = [[S3Region alloc] initWithStringValue:kS3RegionAPSoutheast1]; //S3CreateBucketRequest *createBucketRequest = [[S3CreateBucketRequest alloc] initWithName:[Constants S3Bucket] andRegion:region]; S3CreateBucketRequest *createBucketRequest = [[S3CreateBucketRequest alloc] initWithName:[Constants S3Bucket]]; S3CreateBucketResponse *createBucketResponse = [self.s3 createBucket:createBucketRequest]; NSLog(@"create bucket response: %@", createBucketResponse.error); if(createBucketResponse.error != nil) […]

AWS ios SDK – 将对象上传到AWS S3

我试图按照“上传对象”下列步骤操作: http : //docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transfermanager.html 不过,我把它转换成Swift,因为这是我的整个应用程序的写入。我已经提出了下面的代码,但是当我运行它没有上传到我指定的存储桶。 不幸的是,我甚至没有得到一个错误,这使得它很难排除故障 – 你可以看到下面,我试图打印任何错误到控制台,但myBFTask.error结束为空。 同时myBFTask.result也是null。 对于上下文来说,这段代码全在imagePickerController的didFinishPickingMediaWithInfo里面。 任何提示,看看下一步将不胜感激。 var pickedURL:NSURL = info[UIImagePickerControllerMediaURL] as NSURL println("here's the url for the picked media: \(pickedURL)") //make a timestamp variable to use in the key of the video I'm about to upload let date:NSDate = NSDate() var unixTimeStamp:NSTimeInterval = date.timeIntervalSince1970 var unixTimeStampString:String = String(format:"%f", unixTimeStamp) println("this […]

将文件从iOS上传到Amazon S3

我正尝试将使用UIImagePickerController录制的短片上传到Amazon S3。 我遵循亚马逊示例代码,这似乎很简单,但我的文件没有出现在我的桶。 我logging委托方法,奇怪totalBytesWritten比totalBytesExpected小。 这是我的代码: AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:AWS_ACCESS_KEY withSecretKey:AWS_SECRET_KEY]; S3PutObjectRequest *por = [[S3PutObjectRequest alloc] initWithKey:@"test.mov" inBucket:@"mybucket"]; por.contentType = @"video/quicktime"; NSData *videoData = [NSData dataWithContentsOfURL:videoURL]; por.data = videoData; por.delegate = self; [s3 putObject:por]; 获得任何响应的唯一委托方法是一个报告字节。 别人不叫。 UPDATE 如果文件非常小,它实际上工作。 一个110000字节的file upload罚款。 它每次停在196608字节。 如果文件比上传的文件小。

在Swift中使用iOS AWS SDK检查Amazon S3文件的元数据

我正在使用AWS iOS SDK v2和Swift 1.2。 我在S3上存储我的应用程序的app.json文件,并希望在启动时检查它是否自上次运行后更新。 根据研究,只要对对象执行HEAD请求应该返回“Last-Modified”属性,然后可以将其与之前的对比。 问题是在一个对象上执行一个HEAD请求似乎没有很好的logging。 我有以下几点: var metaDataRequest = AWSS3HeadObjectRequest() metaDataRequest.bucket = S3BucketName metaDataRequest.key = S3AppJSONKey 这似乎是一个体面的开始,但我找不到执行请求的方法。 AWSS3TransferManager有一个download()方法,但该方法需要一个AWSS3TransferManagerDownloadRequesttypes,其中AWSS3HeadObjectRequest不能被转换为。 不知道从哪里走,只是在SDK之外做请求。 但是,我确实想要尽可能多地利用SDK,所以如果可能的话,我很想知道如何。

如何使用AWS iOS SDK删除一个文件夹及其所有对象在侧桶中?

我在iPhone上使用AWS iOS SDK上传对象到亚马逊S3,有时发生错误,一些对象被上传,剩下的没有上传。 我已经创build了桶和里面桶我已经创build了文件夹,我已经存储了我的对象。 我想删除文件夹及其所有对象。 谁能帮我?

iOS AWS v2 S3 Transfer Manager必须使用指定的端点

我正在开发一个使用AWS作为后端的iOS应用程序。 由于我希望用户遍布全球,因此我需要切换应用程序下载照片的位置,以提高延迟性能。 我在EUWest1中创build了一个S3存储桶,而在APNorthEast1中创build了一个S3存储桶。 正如Yosuke在这里所说( https://forums.aws.amazon.com/message.jspa?messageID=586581#586581 ),可以将AWSServiceManager.defaultServiceManager()的默认configuration从一个区域更改为另一个区域,以防止错误。 但是,即使我跟着他的小费,我仍然有同样的错误结果。 错误是: 错误域= com.amazonaws.AWSS3ErrorDomain代码= 0“操作无法完成(com.amazonaws.AWSS3ErrorDomain错误0.)”UserInfo = 0x14fb7720 {RequestId = D708XXX8E1EDBXXX,Endpoint = bucket-ap-northeast-1.s3 -ap-northeast-1.amazonaws.com,Message =您尝试访问的存储区必须使用指定的端点进行寻址。 请发送所有未来的请求到这个端点,HostId = xxxY31S3yFhpssQe1EsfipWWLw = Code = PermanentRedirect,bucket = bucket-ap-northeast-1} 这是我的代码: var credentialsProvider = AWSCognitoCredentialsProvider.credentialsWithRegionType(kCognitoRegionType, accountId: kAWSAccountID, identityPoolId: kCognitoPoolID, unauthRoleArn: kCognitoRoleUnauth, authRoleArn: kCognitoRoleAuth) var serviceConfiguration = AWSServiceConfiguration(region: AWSRegionType.APNortheast1, credentialsProvider: credentialsProvider) AWSServiceManager.defaultServiceManager().setDefaultServiceConfiguration(serviceConfiguration) var transferManager = AWSS3TransferManager.defaultS3TransferManager() transferManager.download(downloadRequest) […]

谷歌云存储下载IOS / Android应用程序

有没有办法下载单个大文件作为多个线程,并结合所有曾经从谷歌云存储下载。

iOS – 同步上传到AWS S3

所有的aws-sdk-ios示例都使用AWSS3TransferManager asynchronous上传数据。 例如: https : //github.com/awslabs/aws-sdk-ios-samples/blob/master/S3TransferManager-Sample/Swift/S3TransferManagerSampleSwift/UploadViewController.swift#L81 现在通常情况下,这是好的,但由于其他原因,我的工作已经在NSOperation子类中,所以我想同步上传到S3以保持简单(否则,我需要实现一个asynchronousNSOperation ,更多的样板…) 有人知道怎么做吗?