При получении URL для чего-то в ведро Amazon S3 может добавить подпись к концу, чтобы подтвердить, что пользователь имеет разрешение на просмотр объекта и URL выглядит так:Был ли FxCop неправильным, чтобы сказать мне использовать класс .Net Uri?
https://mybucket.amazonaws.com/mykey?AWSAccessKeyId=myaccesskey& Истекает = 1235241261 & Подпись = t5vFBWXaN0DvVaWfck9n2% 2fmTzOU% 3d
Эти URL возвращались из моей S3 библиотеки как строковые объекты, и я передал их вокруг, как это. Недавно я запускал свой код через FxCop и рекомендовал использовать класс Uri
для передачи URL-адресов. Я принял решение FxCops и изменил свой URL string
свойствам Uri
. Казалось, что все работает нормально, пока я не заметил, что не все объекты были успешно возвращены.
Причина проблемы заключалась в том, что ToString()
функция Uri
класс будет возвращать несколько иную версию URL:
https://mybucket.amazonaws.com/mykey?AWSAccessKeyId=myaccesskey& Expires = 1235241261 & Подпись = t5vFBWXaN0DvVaWfck9n2/mTzOU =
Мое решение состояло в том, чтобы использовать свойство OriginalString
класса Uri
. Но что-то чувствует себя не так об этом и у меня есть два вопроса,
- Если я принял совет FxCops и использовал
Uri
класс? - Должно ли Amazon понимать, что URL-адреса могут проходить через многие руки и не зависеть от того, что они возвращаются точно так же?
Для использования .Net класса Uri я могу быть уверен, что мои URL-адреса всегда действительны, но, похоже, возможны более тонкие ошибки.
Хм ... авансовый голосование и голосование по уже близко, я был бы признателен за любые комментарии о том, как я мог бы улучшить этот вопрос. – tpower