0

我正在运行 Amazon AWSS3 iOS SDK 版本 2.3.2 并使用 AWSS3TransferUtility 成功实现了文件上传和下载。在过去几周的某个时间点,我们开始经历失败。如果我尝试从名为的文档目录上传以前保存的文件:

/var/mobile/Containers/Data/Application/F505C2A6-3CA3-47F4-87A1-3FD2CFDE932D/Documents/1098/1098.png

uploadFile 方法报告以下内容:

无法在 file:///var/mobile/Containers/Data/Application/F505C2A6-3CA3-47F4-87A1-3FD2CFDE932D/Documents/1098/1098.png 读取文件

如果我尝试使用 uploadData 方法而不是 uploadFile,则会收到以下错误:

无法在 file:///private/var/mobile/Containers/Data/Application/652CAEA4-9174-4408-AFFD-760B275FAB5B/tmp/ea3d80e0cfabcedbe25cc9403ef3bca5/84B78171-E4CA-4F02-9297-F30756657B14-4889-0500006 读取文件

问题似乎与 uploadFile 和 uploadData 方法寻找以“///”开头的文件有关。

我对此进行了研究,发现不久前报道了以下帖子,其中包括相同的场景:未能读取先前保存到文档目录中的文件。

无法从文档目录中读取保存的文件

每次我为uploadData方法检索文件数据,或为filelUpload方法检索文件路径时,我重新查询文档目录如下:

- (NSString*) getDocumentsDirectory {

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDirectory = [paths objectAtIndex:0];
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:docsDirectory];
if (!exists) {
    NSError *error;
    exists = [[NSFileManager defaultManager] createDirectoryAtPath:docsDirectory withIntermediateDirectories:YES attributes:nil error:&error];
    if (exists)
        return docsDirectory;
}
else {
    return docsDirectory;
}

return nil;

}

建议?

4

0 回答 0