Как загрузить файл html в s3 через Rails - PullRequest
0 голосов
/ 06 апреля 2020

Итак, я пытаюсь загрузить файл HTML в мой Aws s3, файл загружается, но не отображается как файл HTML в браузере.

  def upload_coverage_s3
   path_to_file = Rails.root.to_s+'/public/coverage/index.html'
   file = File.open(path_to_file)
   aws_path = "test_coverage/#{Time.now.to_i}/index.html"
   uploadObj = AwsHelper.upload_to_s3_html(aws_path,file)
   uploadObj[:url]
  end



   def self.upload_to_s3_html(path,file)
     if path.nil? || path.blank?
      puts 'Cannot upload. Path is empty.'
      return
     end

     obj = S3_BUCKET.objects[path]


     obj.write(
        file: file,
        content_type: "text/html",
        acl: :public_read
      )

     upload = {
       url: obj.public_url.to_s,
       name: obj.key
      }

    upload
  end

Все, что я получаю белый экран с загрузкой GIF

enter image description here

Я пошел по этой ссылке

Загрузить HTML файл в AWS S3 и затем его обслуживание вместо загрузки

Как я хочу подобную функциональность uploading HTML file and then serving as an HTML file instead of downloading

PS: I загрузил этот файл HTML вручную также в мое ведро s3, проблема та же. Как решить это. S3 не поддерживает HTML загрузку файлов?

1 Ответ

1 голос
/ 06 апреля 2020

Вы загружаете только файл HTML и никаких других зависимостей.

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

Вам необходимо загрузить все другие ресурсы, и в зависимости от того, как они загружены, он может или не может загружаться. работа.

...