Active Storage Permanent Image URL












1















I'm creating a google product listing for a website built in Ruby on Rails. The website has multiple stores with their own front ends so they're wanting a Google Product Feed for each store.



The issue I'm having is if I use url_for(image) then I get the URL for the image on that store. But the way active storage works it's on a temporary URL that lasts 5 minutes by default. So the links wouldn't work on the feed by the it's been processed.



The images are hosted on an S3 bucket so I can get the service_url. But Google doesn't like having the images coming from a separate domain to the store. Is there a way to have a permanent clean url from the stores domain?










share|improve this question



























    1















    I'm creating a google product listing for a website built in Ruby on Rails. The website has multiple stores with their own front ends so they're wanting a Google Product Feed for each store.



    The issue I'm having is if I use url_for(image) then I get the URL for the image on that store. But the way active storage works it's on a temporary URL that lasts 5 minutes by default. So the links wouldn't work on the feed by the it's been processed.



    The images are hosted on an S3 bucket so I can get the service_url. But Google doesn't like having the images coming from a separate domain to the store. Is there a way to have a permanent clean url from the stores domain?










    share|improve this question

























      1












      1








      1








      I'm creating a google product listing for a website built in Ruby on Rails. The website has multiple stores with their own front ends so they're wanting a Google Product Feed for each store.



      The issue I'm having is if I use url_for(image) then I get the URL for the image on that store. But the way active storage works it's on a temporary URL that lasts 5 minutes by default. So the links wouldn't work on the feed by the it's been processed.



      The images are hosted on an S3 bucket so I can get the service_url. But Google doesn't like having the images coming from a separate domain to the store. Is there a way to have a permanent clean url from the stores domain?










      share|improve this question














      I'm creating a google product listing for a website built in Ruby on Rails. The website has multiple stores with their own front ends so they're wanting a Google Product Feed for each store.



      The issue I'm having is if I use url_for(image) then I get the URL for the image on that store. But the way active storage works it's on a temporary URL that lasts 5 minutes by default. So the links wouldn't work on the feed by the it's been processed.



      The images are hosted on an S3 bucket so I can get the service_url. But Google doesn't like having the images coming from a separate domain to the store. Is there a way to have a permanent clean url from the stores domain?







      ruby-on-rails rails-activestorage






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 20 '18 at 13:41









      TomTom

      485




      485
























          2 Answers
          2






          active

          oldest

          votes


















          0














          I think what you're after isn't easily possible. Active Storage doesn't seem to support permanent, non-expiring URLs: "Request has expired" when using S3 with Active Storage



          Depending on your setup, there might be a useful and (mostly) hack-free workaround. In my case, I've set a custom show action on the record that owns the file I want to link to:



          redirect_to url_for(@record_name.file)



          Then, using a path helper for the record show action in my app, as usual, just renders the thing I want via the expiring url_for.






          share|improve this answer































            0














            Try rails_blob_url



            rails_blob_url(image, disposition: "attachment")





            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53869890%2factive-storage-permanent-image-url%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              0














              I think what you're after isn't easily possible. Active Storage doesn't seem to support permanent, non-expiring URLs: "Request has expired" when using S3 with Active Storage



              Depending on your setup, there might be a useful and (mostly) hack-free workaround. In my case, I've set a custom show action on the record that owns the file I want to link to:



              redirect_to url_for(@record_name.file)



              Then, using a path helper for the record show action in my app, as usual, just renders the thing I want via the expiring url_for.






              share|improve this answer




























                0














                I think what you're after isn't easily possible. Active Storage doesn't seem to support permanent, non-expiring URLs: "Request has expired" when using S3 with Active Storage



                Depending on your setup, there might be a useful and (mostly) hack-free workaround. In my case, I've set a custom show action on the record that owns the file I want to link to:



                redirect_to url_for(@record_name.file)



                Then, using a path helper for the record show action in my app, as usual, just renders the thing I want via the expiring url_for.






                share|improve this answer


























                  0












                  0








                  0







                  I think what you're after isn't easily possible. Active Storage doesn't seem to support permanent, non-expiring URLs: "Request has expired" when using S3 with Active Storage



                  Depending on your setup, there might be a useful and (mostly) hack-free workaround. In my case, I've set a custom show action on the record that owns the file I want to link to:



                  redirect_to url_for(@record_name.file)



                  Then, using a path helper for the record show action in my app, as usual, just renders the thing I want via the expiring url_for.






                  share|improve this answer













                  I think what you're after isn't easily possible. Active Storage doesn't seem to support permanent, non-expiring URLs: "Request has expired" when using S3 with Active Storage



                  Depending on your setup, there might be a useful and (mostly) hack-free workaround. In my case, I've set a custom show action on the record that owns the file I want to link to:



                  redirect_to url_for(@record_name.file)



                  Then, using a path helper for the record show action in my app, as usual, just renders the thing I want via the expiring url_for.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Dec 29 '18 at 1:50









                  andrewhainesandrewhaines

                  513




                  513

























                      0














                      Try rails_blob_url



                      rails_blob_url(image, disposition: "attachment")





                      share|improve this answer




























                        0














                        Try rails_blob_url



                        rails_blob_url(image, disposition: "attachment")





                        share|improve this answer


























                          0












                          0








                          0







                          Try rails_blob_url



                          rails_blob_url(image, disposition: "attachment")





                          share|improve this answer













                          Try rails_blob_url



                          rails_blob_url(image, disposition: "attachment")






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Dec 20 '18 at 16:22









                          mehedimehedi

                          9116




                          9116






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53869890%2factive-storage-permanent-image-url%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Mossoró

                              Error while reading .h5 file using the rhdf5 package in R

                              Pushsharp Apns notification error: 'InvalidToken'