我需要開發一個MAC OS X應用程序,它將上傳選定的文件到亞馬遜網絡服務。但爲此,我需要aws sdk for mac。我在網上找不到任何東西。是否可以修改AWS SDK for iOS以便它可以用於Mac?aws sdk for mac os x應用程序開發
另外,AWS SDK文檔沒有說明如何將文件上傳到S3。有沒有人有如何做到這一點的例子?
感謝
我需要開發一個MAC OS X應用程序,它將上傳選定的文件到亞馬遜網絡服務。但爲此,我需要aws sdk for mac。我在網上找不到任何東西。是否可以修改AWS SDK for iOS以便它可以用於Mac?aws sdk for mac os x應用程序開發
另外,AWS SDK文檔沒有說明如何將文件上傳到S3。有沒有人有如何做到這一點的例子?
感謝
通過a discussion on this topic在AWS Developer Forums來看,似乎沒有成爲一個正式的AWS SDK適用於MacOS X還,但iOS版本已接近可用。該主題的貢獻者之一已經爲至少一些服務發佈了a modified version that allegedly works on MacOS X。我沒有任何親身經歷,但似乎值得一看。
真的我所做的只是叉子iOS的正式版,然後做出一些很細微的變化 - 都在那裏簡單地滿足編譯器,就像使用的ifdef各地的任何iOS的唯一代碼(不要太多),並交換了一些頭
這就是我所做的,但是當我調用AmazonS3Client類的listBuckets方法時,我遇到了一個奇怪的異常。它說: 試圖改變一個不可改變的對象與appendString: 我已搜查了整個SDK的appendString電話,但我沒有發現任何東西。我發現在調用NSRunLoop runMode時出現錯誤:beforeDate:在AmazonS3Client的第464行。 任何人都可以幫忙嗎? – NSAddict 2012-10-03 08:00:30
好吧,我已經用你的答案修改過的版本來試用它,它可以很好地適用於這個。仍然想知道爲什麼它不工作... – NSAddict 2012-10-03 08:44:03
正如迦勒提到:沒有正式的AWS SDK爲OS X
完成使用ASIHTTPRequest
S3文件上傳的最簡單方法。它是CFNetwork的包裝,易於使用。缺點是沒有ARC支持,所以你必須自己處理內存管理...
ASI基本上已經停產。一探究竟。 – 2012-02-27 15:40:48
我已經創建了一個可以構建和用於Mac OS X開發的AWS iOS SDK的分支。檢查出來:https://github.com/amberdixon/aws-sdk-ios。在自述文件中,我介紹瞭如何構建AWS iOS SDK框架的Mac OS X版本。 tomandersen回購似乎使用iOS SDK的更老的版本,我創建的版本更加流行。
+1的作品就像一個魅力 – 2013-10-22 23:56:08
當時,我設法將其與MacOS的工作,而不與代碼更加混亂,但琥珀感謝很多關於這一點,它會幫助別人...... – 2013-12-16 11:51:34
我找不到框架,你可以請把步驟或屏幕截圖我如何才能找到的框架建立後,你的建議的src/AWSiOSSDK.xcodeproj我打開這個項目再建,但沒有發現任何框架:(plz幫助 – 2015-03-07 10:06:12
我需要適用於Mac的AWS開發工具包來支持爲我的iOS應用程序預填充數據庫,並驚訝於它不存在(考慮生成的版本與iOS版本如此相似將會如何微不足道)。我下載了Amber上面提到的github MacOS SDK和上面AWS鏈接中提到的那個。然而,它們都沒有直接構建,所以我決定自己修改iOS SDK,以便我能夠理解這個過程是什麼。 以下是我在MacOS 10.9上使用DynamoDB在XCode 5.0.2中工作的步驟:
1.下載iOS AWS 1.7.0 SDK,複製文件夾並將文件夾重命名爲aws-MacOS-sdk -1.7.0(少量的條件編譯和構建腳本中的if/else將取消該步驟)
2.修改src/Scripts/Framework.sh - 這是所有AWS的構建工具構架 - 更換所有四個xcodebuild聯編線(30-39)具有:
`xcodebuild -configuration Release -project "${PROJECT}.xcodeproj" -target "${PROJECT}" -sdk macosx10.9`
替換的脂線(82-87):
FRAMEWORK_INPUT_MAC_FILES="build/Release/lib${PROJECT}.a" cp "$FRAMEWORK_INPUT_MAC_FILES" "$FRAMEWORK_DIR/Versions/Current/$FRAMEWORK_NAME"
3.In src文件夾中有每個框架中的XCode項目,爲每一個需要:
[[NSProcessInfo processInfo] operatingSystemVersionString]
<UIKit/UIKit.h>
與
<Cocoa/Cocoa.h>
在這裏和那裏,和
[[UIDevice currentDevice] systemName]
要獲得DynamoDB工作,我必須建立4個體系 - 這是相當容易
我似乎無法擺脫這種錯誤::「 Cocoa/Cocoa.h' – 2014-04-30 11:16:10
您是否按照我項目的README中的說明操作?謝謝。 – 2014-05-30 18:18:07
繼上previous answer,我分叉並修改了AWS SDK V2.2的適用於iOS,因此現在建立適用於Mac OS X(在測試優勝美地10.10.3):https://github.com/johnabender/aws-sdk-ios同時結帳tvos
分支!
它們提供了一個命令行工具來包裝SDK組件爲.framework
對象。運行Scripts/SdkPackage.sh AWSS3
,它將構建S3框架和任何依賴關係。運行Scripts/Package.sh
來構建所有框架。如果您全部構建它們,則構建的框架將封裝在AWS SDK目錄的根目錄/build
中。
但讓人驚訝,他們的文檔是可怕的。例如,如果您想使用訪問密鑰而不是Cognito身份,則必須查看代碼並找出(至少可能的!)。想要列出S3存儲桶的內容?祝你好運。大部分所需的課程均未列入documentation。而且你必須在你的項目中包含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
}
您是我整個星期給出的最大虛擬高五的接收者! – Chris 2015-10-02 21:26:01
@jab能否提供一些細節關於如何使用這個。我下載了一個ZIP壓縮文件,但無法構建它 - 它抱怨說我的Mac不是一個有效的目標? – 2015-12-04 11:45:19
好了!運行腳本!儘管獲得以下錯誤。 '**建立失效** 以下製作命令失敗: \t CompileC建立/ AWSMobileAnalytics.build /調試/ AWSMobileAnalytics.build /對象 - 正常/ x86_64的/ AWSMobileAnalyticsIOSLifeCycleManager.o AWSMobileAnalytics /內部/ AWSMobileAnalyticsIOSLifeCycleManager.m正常x86_64的objective-c com.apple.compilers.llvm.clang.1_0.compiler (1個失敗) 發生錯誤,中止' – 2015-12-04 11:48:27
這不是題外話的。找到適用於Mac OS的AWS開發工具包會非常有幫助。 – 2016-05-26 18:49:14