То, что вы хотите, должно быть возможным в большинстве случаев, но я могу гарантировать проблемы. Если вы написали метод, использующий класс GZipStream , он мог бы взять имеющуюся у вас 170-байтовую строку и уменьшить ее. Как говорило большинство людей, степень сжатия действительно зависит от самого контента.
Так же, как тест:
Я взял строку «0123456789», повторяющуюся 17 раз (для 170 символов), сжал ее и уменьшил до 21 символа.
Если я возьму строку из 170 нулей и скопирую ее, она будет уменьшена до 12 символов.
Я взял 170 байтов случайного кода, и он сократился до 79 символов.
Так что в этих случаях он сжал бы его, чтобы он соответствовал вашим требованиям к пространству; но нет способа предсказать, когда и как часто это не произойдет. Степень сжатия может в конечном итоге составить 1: 1, и при создании блочной структуры возникают накладные расходы, поэтому это может привести к сжатой длине, немного превышающей исходную. Опять же, вам может понадобиться кодировать base64 целиком, чтобы правильно хранить его в БД, чтобы это еще больше увеличило ваши накладные расходы.