繁体   English   中英

上传后从存储桶Amazon Web Service iOS获取图像URL

[英]Getting image URL from bucket Amazon Web Service iOS after uploading

我有一个图像,我以这种方式在AWS上传到我的存储桶:

BFTask *task = [BFTask taskWithResult:nil];

        [[task continueWithBlock:^id(BFTask *task) {

            self.URL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"test"]];

            NSData *data = UIImagePNGRepresentation(image);
            //NSMutableString *dataString = [NSMutableString new];
            [data writeToURL:self.URL atomically:YES];
            return nil;

        }]continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(BFTask *task) {

            self.uploadRequest1 = [AWSS3TransferManagerUploadRequest new];
            self.uploadRequest1.bucket = S3BucketName;
            self.uploadRequest1.key = S3KeyUploadName1;


            self.uploadRequest1.body = self.URL;
            return nil;
        }];

            AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];

            [[transferManager upload:self.uploadRequest1] continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(BFTask *task) {
                if (task.error != nil) {
                    if( task.error.code != AWSS3TransferManagerErrorCancelled
                       &&
                       task.error.code != AWSS3TransferManagerErrorPaused
                       )
                    {
                        NSLog(@"Upload Failed!");
                    }
                } else {
                    self.uploadRequest1 = nil;
                    NSLog(@"Uploaded!");
                                        }
                return nil;
            }];

上传图像的代码工作得很好。 当我打开我的水桶时,我看到那里的图像。

现在我想要做的是获取该图像的URL,有没有办法获取URL而不再获取图像?

你没有得到它,你创建它像:

https://s3.amazonaws.com/BUCKET_NAME/FILE_NAME.jpg

AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];

uploadRequest.body = [NSURL fileURLWithPath:filePath];
uploadRequest.key = fileName;
uploadReuest.bucket = S3BucketName;

[uploadRequest setACL:AWSS3ObjectCannedACLPublicRead];

上面的答案是正确的,但您必须将“ACL”设置为uploadRequest。

在您的问题中,您忘记设置“ACL”。

谢谢

我能够从Amazon S3获取路径 - > Bucket - > Folder - > Image file - > Properties,在右侧,您将看到类似这样的内容。

从这里获取图像可访问路径

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM