AWS S3 с Rails: проблемы с кэшированием и перезагрузкой - PullRequest
0 голосов
/ 30 июля 2010

У меня есть такой код, который работает нормально, если рассматриваемый файл еще не существует.

if AWS::S3::S3Object.exists? file_name, bucket.name + path_to_images
  puts "file exists (deleting)"
  AWS::S3::S3Object.delete file_name, bucket.name + path_to_images, :force => true
end

AWS::S3::S3Object.store file_name, 
   File.read(file_path), 
   bucket.name + path_to_images, 
   :content_type => 'image/png',
   :access => :public_read

`rm #{file_path}`

У меня проблема в том, что если файл существует, я хочуперезаписать его новой копией ... теперь я не уверен, что это проблема перезаписи, поэтому я сначала попытался удалить файл, если он уже существует.Это тоже не сработало.Поэтому я предполагаю, что он либо не удаляется, либо кэшируется тоже.

При отображении изображения со случайным числом 123232 я даже пытался удалить кеш браузера только для ударов.

Я уверен, что что-то простое мне не хватает,и, возможно, более краткий способ сделать это в любом случае.

Спасибо

ОБНОВЛЕНИЕ: Я думаю, что проблема должна быть как-то связана с облачным фронтом или обычным кэшированием s3, потому что в конечном итоге ... он обновляет,Но только через день или около того?И это не мой браузер, кеширующий его, так что, вероятно, это так.Кто-нибудь знает, как сказать, чтобы сбросить кэш?

Ответы [ 2 ]

0 голосов
/ 01 августа 2010

У меня никогда не было проблем с кэшированием s3 или чем-то подобным.Скорее всего, я бы по-прежнему считал это проблемой локального кэша, поскольку кэширование могло происходить в нескольких местах.Для подтверждения я бы рекомендовал просмотреть фактические файлы в вашем хранилище amazon и посмотреть, что вы получите после обновления (я думаю, что amazon уже встроил их в свой аккаунт на s3, в противном случае мне повезло с cloudberry http://cloudberrylab.com/). В качестве альтернативы, вы можете просто попробовать получить к нему доступ с другого компьютера после обновления файла.

0 голосов
/ 31 июля 2010

А как же

File.open (file_path)

вместо File.read. Это должно сделать трюк:)

Petr

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...