Создание уникальных идентификаторов объектов для AWS

Я использую и начинаю понимать AWS для использования в моем приложении Objective-C для iOS. Я перешел с разбора и теперь учусь использовать NoSQL/DynamoDB для хранения всех своих данных. У меня есть и aws-sdk, и крипто, которые используются в функциях AWS Lambda (но я открыт для других).

Как создать идентификаторы объектов, уникальные для объектов моей базы данных (например, синтаксический анализ, используемый как 10 буквенно-цифровых символов для каждой записи)?

Скажем, у меня есть куча изображений, загружаемых через мое приложение, и мне нужен уникальный идентификатор для каждого. Как лучше всего это сделать для DynamoDB?

Я также надеюсь, что идентификатор объекта изображения также может иметь вторичный индекс идентификатора пользователя. Спасибо.


person cdub    schedule 31.10.2016    source источник
comment
stackoverflow.com/questions/8982148/uuids-for-dynamodb   -  person helloV    schedule 31.10.2016


Ответы (2)


Вы можете создать уникальный идентификатор для своих изображений/объектов, используя что-то вроде этого:

func randomStringWithLength(len: Int) -> NSString {
    let letters : NSString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    let randomString : NSMutableString = NSMutableString(capacity: len)
    for _ in 0 ..< len {
        let length = UInt32 (letters.length)
        let rand = arc4random_uniform(length)
        randomString.appendFormat("%C", letters.characterAtIndex(Int(rand)))
    }
    return randomString
}

Чтобы обеспечить высокую уникальность, просто добавьте отметку времени (текущая дата и время при загрузке изображения/объектов) со случайной строкой, которая генерируется с использованием вышеуказанного метода.

person Karthick Selvaraj    schedule 01.11.2016

Если вы не можете найти способ, используя комбинацию существующих полей для индекса, создайте универсальный уникальный идентификатор (UUID); lookup(google), создавая UUID для используемого языка. Или попробуйте придумать что-нибудь креативное и потенциально более полезное, например: image_file_name+upload_date_time_+image_owner.

person Stafford    schedule 31.10.2016