iOSアプリからサーバーにユーザーがアップロードする画像のグローバルに一意の名前を生成するためのコードを作成しようとしています。名前はランダムに生成され、画像が上書き/置換されないように一意である必要があります。
ランダムで一意の文字列を生成するための私のコードは次のとおりです。
+ (NSString *)generateRandNameWithLength:(int)len
{
NSString *letters = [NSString stringWithFormat:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ%@0123456789", [HJUtilities generateUniqueApId]];
NSMutableString *randomString = [NSMutableString stringWithCapacity: len];
for (int i=0; i<len; i++) {
[randomString appendFormat: @"%C", [letters characterAtIndex: arc4random() % [letters length]]];
}
return randomString;
}
どこ:
+ (NSString *)generateUniqueApId
{
NSString *appId = (__bridge NSString *) CFUUIDCreateString (NULL, CFUUIDCreate(NULL));
return appId;
}
UUIDを返します。
これがグローバルに一意の文字列を生成するための正しいコードであるかどうかはわかりません。これを確認して、他のユーザーの画像を上書きしないユーザーがいないことを確認する方法がわかりません。
注:ストレージにアマゾンウェブサービスを使用しています。また、すべてのユーザーのすべての画像に1つの共通バケットが使用されます。したがって、画像名は一意である必要があります。