Я же написал что клиент поддерживает только 4 версию. Я не использую клиент на c#. Если написать развёрнуто, то вот что я использую: Я использую SaltStack. SaltStack нуждается в хранилище (он поддерживает разные хранилища: локальная папка, git, s3, azure...). Лично мне удобно использовать s3 (локальная папка в моём случае не приемлема). Так вот, для того чтобы работать с s3 у них есть специальный модуль s3fs который умеет использовать s3 обьектное хранилище. Этот модуль написан на Python и этот модуль умеет работать только с 4 версией подписи. Там просто не написана логика работы для 2 версии. Я не могу перевести клиента на вторую версию по двум причинам: 1. Нужно переписывать чужой модуль 2. Я никогда не работал с Python
Нужно понимать что я не использую s3.amazon.com. У меня своё приватное хранилище которые никоем образом не относиться к амазону. Просто что у этого хранилища точно такое-же API как и у Амазона. Единственное решение это настроить Nginx чтобы он правильно проксировал запросы к моему хранилищу. 2016-12-14 14:53 GMT+02:00 Илья Шипицин <chipits...@gmail.com>: > > > 14 декабря 2016 г., 17:41 пользователь Alexandr Porunov < > alexandr.poru...@gmail.com> написал: > >> Всем привет, >> >> Я хочу использовать Nginx в качестве прокси для S3 совместимого хранилища >> с 4 версией подписи (Amazon s3 signature version 4). >> >> Я новичёк в Nginx, но попробую обьяснить что я хочу сделать. >> >> У меня есть 3 сервера: >> >> mydomain.com - публичный сервер с запущенным Nginx >> s3storage - приватный сервер с хранилищем с S3 API >> client - клиент который хочет использовать S3 хранилище через Nginx (т.е. >> через домен mydomain.com). Этот клиент умеет работать только с 4 версией >> S3 подписи. >> >> Таким образом клиент отправляет примерно такие запросы к Nginx: >> https://<bucket>.mydomain.com/<my_files> >> >> где <bucket> - имя бакета и <my_files> - имя файла (если есть). >> >> Я должен иметь возможность как-то правильно проксировать эти запросы с >> mydomain.com к s3storage (у s3storage IP 192.168.0.45). >> >> Проблема в том что имя бакета находиться в URL, а не в пути. Не понятно >> как правильно проксировать такие запросы чтобы подпись оставалась целой и >> чтобы можно было получать файлы с s3storage. >> > > каким образом использовать бакет, в днс или в пути - это на усмотрение > клиента, допустимы оба варианта > > http://stackoverflow.com/questions/16938683/ > > > (пример для клиента на c#) > > AmazonS3Config S3Config = new AmazonS3Config() > { > ServiceURL = "s3.amazonaws.com", > ForcePathStyle = true, > RegionEndpoint = region > }; > > более предсказуемая схема - перевести клиента и сервер на единообразный > механизм. иначе подпись будет биться > (и не совсем понятно, почему это надо чинить на nginx в транзите) > > > > > >> >> Если кто-то знает как правильно настроить Nginx, то подскажите, пожалуйста >> >> С уважением, >> Александр >> >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru >
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru