我需要为MAC OS X开发一个应用程序,它将把所选文件上传到亚马逊网络服务。但为此我需要aws sdk for mac。我没有在网上找到任何东西。是否可以修改 适用于iOS的AWS SDK 所以它可以用于Mac?
此外,AWS SDK文档未说明如何将文件上载到S3。有没有人有一个如何做到这一点的例子?
谢谢
我需要为MAC OS X开发一个应用程序,它将把所选文件上传到亚马逊网络服务。但为此我需要aws sdk for mac。我没有在网上找到任何东西。是否可以修改 适用于iOS的AWS SDK 所以它可以用于Mac?
此外,AWS SDK文档未说明如何将文件上载到S3。有没有人有一个如何做到这一点的例子?
谢谢
判断 关于这个主题的讨论 在里面 AWS开发者论坛似乎还没有适用于MacOS X的官方AWS开发工具包,但iOS版本已接近可用。这个帖子的一个贡献者发布了 据称可在MacOS X上运行的修改版本 至少有一些服务。我没有任何个人经验,但似乎值得一看。
我已经创建了一个AWS iOS SDK的分支,可以构建并用于Mac OS X开发。一探究竟: https://github.com/amberdixon/aws-sdk-ios。在自述文件中,我已经包含了有关如何构建AWS iOS SDK框架的Mac OS X版本的说明。 tomandersen repo似乎使用了更旧版本的iOS SDK,我创建的版本更新一些。
以下是 以前的答案,我分叉并修改了适用于iOS的AWS SDK的v2.2,现在它为Mac OS X构建(在Yosemite 10.10.3中测试): https://github.com/johnabender/aws-sdk-ios 还要结帐 tvos
科!
它们提供了一个命令行工具来将SDK组件打包为 .framework
对象。跑 Scripts/SdkPackage.sh AWSS3
,它将构建S3框架和任何依赖项。跑 Scripts/Package.sh
构建所有框架。构建的框架在根中结束/build
您的AWS开发工具包目录(如果您构建它们)。
但是,他们的文件非常糟糕。例如,如果您想使用访问密钥而不是Cognito身份,则必须完成代码并弄清楚如何(至少可能!)。想列出S3存储桶的内容吗?祝你好运。大多数必需的类甚至没有列在 文件。你必须包括 libz.dylib
在你的项目中使用S3 SDK进行构建 - 他们也没有告诉你。
无论如何,这里有一些代码可以帮助任何人开始:
// This is helpful, also basically undocumented.
AWSLogger.defaultLogger().logLevel = .Verbose
let credentials = AWSStaticCredentialsProvider(accessKey: accessKeyId, secretKey: secretAccessKey)
let config = AWSServiceConfiguration(region: AWSRegionType.USWest2, credentialsProvider: credentials)
let listRequest = AWSS3ListObjectsRequest()
listRequest.bucket = "mybucket"
listRequest.prefix = "folder/"
// The key name allows you to set up multiple, global S3 configurations
// -- in case you'd ever want to do that, in violation of OO programming principles.
// But there's no way to make S3 requests using only a local config.
AWSS3.registerS3WithConfiguration(config, forKey: "s3")
AWSS3.S3ForKey("s3").listObjects(listRequest).continueWithBlock { (task: AWSTask!) -> AnyObject! in
if task.error != nil {
NSLog("error %@", task.error)
}
if task.result != nil {
NSLog("finished %@", task.result!.description)
}
return nil
}
正如Caleb所说:OS X没有正式的AWS SDK。
完成S3文件上传的最简单方法是使用 ASIHTTPRequest
。它是CFNetwork的包装器,易于使用。缺点是没有ARC支持,所以你必须自己处理内存管理...
我需要AWS SDK for Mac来支持为我的iOS应用程序预先填充数据库,并且对它不存在感到惊讶(考虑到生产它将如何与iOS版本非常相似)。我下载了上面提到的Amber提到的github MacOS SDK以及上面AWS链接中提到的那个。然而,两者都没有直接构建,所以我决定自己修改iOS SDK,以便我能理解这个过程是什么。 以下是我在MacOS 10.9上使用XCode 5.0.2进行DynamoDB的步骤:
1.下载iOS AWS 1.7.0 SDK,复制文件夹并将文件夹重命名为aws-MacOS-sdk-1.7.0(少量条件编译,如果构建脚本中的if / else将取消此步骤)
2.Modify src / Scripts / Framework.sh - 这是所有AWS框架的构建工具 - 将所有四条xcodebuild线(30-39)替换为:
`xcodebuild -configuration Release -project "${PROJECT}.xcodeproj" -target "${PROJECT}" -sdk macosx10.9`
将lipo线(82-87)替换为:
FRAMEWORK_INPUT_MAC_FILES="build/Release/lib${PROJECT}.a"
cp "$FRAMEWORK_INPUT_MAC_FILES" "$FRAMEWORK_DIR/Versions/Current/$FRAMEWORK_NAME"
3.在src文件夹中,每个框架都有一个XCode项目,对于你需要的每个项目:
<UIKit/UIKit.h>
同 <Cocoa/Cocoa.h>
在这里和那里,和 [[UIDevice currentDevice] systemName]
同 [[NSProcessInfo processInfo] operatingSystemVersionString]
为了让DynamoDB正常工作,我必须构建四个框架 - 它相当轻松