{"id":27814,"date":"2017-12-22T20:29:55","date_gmt":"2017-12-22T20:29:55","guid":{"rendered":"https:\/\/dev.railscarma.com\/upload-files-directly-s3-using-paperclip-dropzone-js\/"},"modified":"2021-06-05T07:04:12","modified_gmt":"2021-06-05T07:04:12","slug":"uploader-des-fichiers-directement-sur-s3-en-utilisant-paperclip-dropzone-js","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/uploader-des-fichiers-directement-sur-s3-en-utilisant-paperclip-dropzone-js\/","title":{"rendered":"T\u00e9l\u00e9charger des fichiers directement sur S3 avec Paperclip et Dropzone.js"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"27814\" class=\"elementor elementor-27814\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2c821db0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2c821db0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-475f1c5e\" data-id=\"475f1c5e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a9dd12a elementor-widget elementor-widget-text-editor\" data-id=\"a9dd12a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p>Ce sont g\u00e9n\u00e9ralement les petites t\u00e2ches qui prennent du temps qui nous frustrent le plus. Par exemple, le t\u00e9l\u00e9chargement d'un fichier sur S3 ; l'exigence est assez simple, mais la m\u00e9thode choisie pour t\u00e9l\u00e9charger le fichier d\u00e9terminera l'efficacit\u00e9 de la t\u00e2che. Comme le t\u00e9l\u00e9chargement de fichiers est une fonctionnalit\u00e9 dont la plupart des applications ont besoin, RailsCarma a compil\u00e9 un bref tutoriel sur l'une des meilleures m\u00e9thodes pour r\u00e9aliser cette t\u00e2che efficacement : en utilisant Paperclip et Dropzone.js.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Trombone<\/strong> est un choix populaire pour le t\u00e9l\u00e9chargement d'images et de fichiers car il offre d'excellentes fonctionnalit\u00e9s pour g\u00e9rer les pi\u00e8ces jointes ; la gemme \"paperclip\" est la meilleure option. Paperclip vous permet de t\u00e9l\u00e9charger plusieurs images et fichiers, de g\u00e9n\u00e9rer des vignettes et m\u00eame de redimensionner automatiquement les images. Il b\u00e9n\u00e9ficie d'une communaut\u00e9 importante et active, ce qui en fait le premier choix de la plupart des d\u00e9veloppeurs.<\/li><li><strong>Dropzone.js<\/strong> est une biblioth\u00e8que open source avec des fonctions de glisser-d\u00e9poser de fichiers (avec aper\u00e7u de l'image).<\/li><li><strong>Amazon S3<\/strong> est un simple dispositif de stockage de donn\u00e9es. On peut l'utiliser pour r\u00e9cup\u00e9rer des images et tous types de fichiers.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Pourquoi Paperclip ?<\/strong><\/h3>\n\n\n\n<p>Paperclip est un outil de t\u00e9l\u00e9chargement de fichiers populaire pour les raisons suivantes :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Prise en charge de la mise en cache des fichiers :<\/strong><br>Si un formulaire n'est pas valid\u00e9, nous ne voulons pas que l'utilisateur doive reprendre son fichier et le t\u00e9l\u00e9charger \u00e0 nouveau. La mise en cache des fichiers est donc n\u00e9cessaire du point de vue de l'ergonomie. Elle permet \u00e9galement d'\u00e9conomiser la bande passante.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Processus Images<\/strong><br>Paperclip est capable de redimensionner et de recadrer les images dans plusieurs formats diff\u00e9rents, ce qui permet au d\u00e9veloppeur de choisir la biblioth\u00e8que.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Simplifie la t\u00e2che !<\/strong><br>Paperclip gem ne pollue pas votre code et est facile \u00e0 tester !<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Permet le traitement des fichiers<\/strong><br>Paperclip permet le traitement des fichiers pour l'extraction des donn\u00e9es EXIF et la cr\u00e9ation de vignettes pour les PDF, PSD, DOC et XLSX t\u00e9l\u00e9charg\u00e9s.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Fournit un support pour les services CDN et de stockage&nbsp;<\/strong><br>C'est un grand avantage car nous voulons maintenir la bande passante vers nos serveurs aussi basse que possible et \u00e9viter toute perte de donn\u00e9es due \u00e0 une d\u00e9faillance du serveur.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Traitement \u00e0 la vol\u00e9e<\/strong><br>Paperclip traite les images et les fichiers en fonction des demandes. Il s'agit d'une fonctionnalit\u00e9 innovante qui permet aux d\u00e9veloppeurs de cr\u00e9er un contenu personnalis\u00e9 qui s'adapte au mieux aux diff\u00e9rentes situations.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Que sont les \u00e9v\u00e9nements asynchrones de la Dropzone ?<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>fichier ajout\u00e9 :<\/strong>&nbsp; Lorsqu'un fichier est ajout\u00e9 \u00e0 la liste.<\/li><li><strong>fichier enlev\u00e9 :<\/strong> Utilis\u00e9 lorsqu'un fichier est supprim\u00e9 de la liste. Vous pouvez l'\u00e9couter et supprimer le fichier de votre serveur si vous le souhaitez.<\/li><li><strong>vignette :<\/strong> Lorsque la vignette a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9e. Il re\u00e7oit l'URL des donn\u00e9es comme deuxi\u00e8me param\u00e8tre.<\/li><li><strong>erreur :<\/strong> En cas d'erreur, le message d'erreur est re\u00e7u comme deuxi\u00e8me param\u00e8tre. Et si l'erreur est due \u00e0 xmlhttprequest, l'objet xhr est re\u00e7u comme troisi\u00e8me param\u00e8tre.<\/li><li><strong>traitement :<\/strong> Lorsqu'un fichier est trait\u00e9 (en raison de la pr\u00e9sence d'une file d'attente, tous les fichiers ne sont pas trait\u00e9s imm\u00e9diatement). Cet \u00e9v\u00e9nement s'appelait auparavant processingfile.<\/li><li><strong>baisse :<\/strong> L'utilisateur a d\u00e9pos\u00e9 un objet dans la zone de d\u00e9p\u00f4t.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Comment configurer Paperclip dans notre application ?<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>has_attached _file : asset<\/li><li>:storage =&gt; :s3<\/li><li>:S3_host_name =&gt; ENV[\"S3_HOST_NAME\"]<\/li><li>:S3_region =&gt; ENV[\"S3_REGION\"]<\/li><li>:S3_protocol =&gt; ENV[\"S3_PROTOCOL\"]<\/li><li>:path =&gt; \":account_id\/:class\/:source_id\/:attachment\/:file_name\",:s3_headers =&gt; {'ContentDisposition' =&gt; 'attachment', 'content-type' =&gt; 'application\/octet_stream'},<br>:bucket =&gt; ENV[\"S3_BUCKET\"],<br>:s3_credentials =&gt; Proc.new{|a| a.instance.s3_credentials}<\/li><li>Do_not_validate_attachment_file_type :asset<\/li><li>def s3_credentials<br>{:access_key_id =&gt; ENV[\"S3_ACCESS_KEY_ID\"], :secret_access_key =&gt; ENV[\"S3_SECRET_ACCESS_KEY\"]}<\/li><\/ul>\n\n\n\n<p>fin<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comment g\u00e9rer les chemins d'acc\u00e8s personnalis\u00e9s dans notre application ?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Paperclip.interpolates :attachment do |attachment, style|Image_extension = [\u201cjpg\u201d, \u201cjpeg\u201d, \u201cgif\u201d, \u201cpng\u201d, \u201cPNG\u201d, \u201cGIF\u201d, \u201cJPEG\u201d, \u201cJPG\u201d]\nextname = File.extname(attachment.instance.asset_file_name).downcase.gsub(\/\\.\/, \u2018\u2019)\nif img_extension.include? (extname)\nreturn \u201cimages\u201d\nelse\nreturn extname\nend\nend\nPaperclip.interpolates :file_name do |attachment, style|file_name = attachment.instance.asset_file_name\nEnd<\/code><\/pre>\n\n\n\n<p>Les donn\u00e9es contenues dans le seau S3 peuvent \u00eatre r\u00e9cup\u00e9r\u00e9es \u00e0 tout moment. Mais il y a une limitation : la gestion des chemins d'acc\u00e8s personnalis\u00e9s pour diff\u00e9rentes structures de r\u00e9pertoires peut \u00eatre assez lourde. Paperclip peut s'av\u00e9rer utile dans de telles situations. Il s'agit d'un excellent outil pour t\u00e9l\u00e9charger et stocker des images dans un seau S3 \u00e0 l'aide d'AWS.<\/p>\n\n\n\n<p>\u00c0 <a href=\"https:\/\/www.railscarma.com\/fr\/\" target=\"_blank\" rel=\"noreferrer noopener\">Railscarma<\/a>Nous d\u00e9veloppons et fournissons des services d'applications web de pointe en utilisant les frameworks de Ruby pour nos clients dans le monde entier.<br>Vous souhaitez des solutions innovantes pour tout autre probl\u00e8me li\u00e9 au d\u00e9veloppement des rails ? <a href=\"\/fr\/contactez-nous\/\" target=\"_blank\" rel=\"noreferrer noopener\">Prenez contact avec nous<\/a>!<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-619ac7f4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"619ac7f4\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7aa58ff8\" data-id=\"7aa58ff8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-46be78ec elementor-widget elementor-widget-heading\" data-id=\"46be78ec\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-450fc94f elementor-widget elementor-widget-shortcode\" data-id=\"450fc94f\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"chargeur\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Adresse e-mail\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articles Similaires<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"joyau kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"pourquoi embaucher des d\u00e9veloppeurs Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/09\/DATA-SCRAPING-IN-RAILS-BY-PROCESSING-CSV-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/grattage-de-donnees-dans-les-rails-en-traitant-csv\/?related_post_from=31591\">\r\n        R\u00e9cup\u00e9ration de donn\u00e9es dans Rails en traitant CSV  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/07\/MAKE-VOICE-CALLS-THROUGH-RUBY-ON-RAILS-WEB-APPLICATIONS-768x288.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Passer des appels vocaux via les applications Web Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/passer-des-appels-vocaux-via-les-applications-web-ruby-on-rails\/?related_post_from=31309\">\r\n        Passer des appels vocaux via les applications Web Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>It\u2019s usually the small time-consuming tasks that frustrate us the most. Such as uploading a file to S3; the requirement is pretty simple but the method chosen to upload the file will decide the efficiency of the task. As uploading files is a feature that most applications require, RailsCarma has compiled a brief tutorial on &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/third-party-api-integration-solutions-in-ruby-on-rails\/\"> <span class=\"screen-reader-text\">Solutions d'int\u00e9gration d'API tierces en Ruby on Rails<\/span> Lire la suite \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31706,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[382],"class_list":["post-27814","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-ruby-on-rails"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Upload Files Directly To S3 Using Paperclip And Dropzone.js - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Upload Files Directly To S3 Using Paperclip And Dropzone.js It\u2019s usually the small time-consuming tasks that frustrate us the most. Such as uploading a file to S3; the requirement is pretty simple but the method\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/uploader-des-fichiers-directement-sur-s3-en-utilisant-paperclip-dropzone-js\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upload Files Directly To S3 Using Paperclip And Dropzone.js - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Upload Files Directly To S3 Using Paperclip And Dropzone.js It\u2019s usually the small time-consuming tasks that frustrate us the most. Such as uploading a file to S3; the requirement is pretty simple but the method\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/uploader-des-fichiers-directement-sur-s3-en-utilisant-paperclip-dropzone-js\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-22T20:29:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-05T07:04:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Upload Files Directly To S3 Using Paperclip And Dropzone.js\",\"datePublished\":\"2017-12-22T20:29:55+00:00\",\"dateModified\":\"2021-06-05T07:04:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/\"},\"wordCount\":673,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png\",\"keywords\":[\"Ruby on rails\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/\",\"name\":\"Upload Files Directly To S3 Using Paperclip And Dropzone.js - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png\",\"datePublished\":\"2017-12-22T20:29:55+00:00\",\"dateModified\":\"2021-06-05T07:04:12+00:00\",\"description\":\"Upload Files Directly To S3 Using Paperclip And Dropzone.js It\u2019s usually the small time-consuming tasks that frustrate us the most. Such as uploading a file to S3; the requirement is pretty simple but the method\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upload Files Directly To S3 Using Paperclip And Dropzone.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Uploader des fichiers directement sur S3 en utilisant Paperclip et Dropzone.js - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","description":"Uploader des fichiers directement sur S3 avec Paperclip et Dropzone.js Ce sont g\u00e9n\u00e9ralement les petites t\u00e2ches qui prennent du temps qui nous frustrent le plus. Par exemple, le t\u00e9l\u00e9chargement d'un fichier sur S3 ; le besoin est assez simple, mais la m\u00e9thode","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/uploader-des-fichiers-directement-sur-s3-en-utilisant-paperclip-dropzone-js\/","og_locale":"fr_FR","og_type":"article","og_title":"Upload Files Directly To S3 Using Paperclip And Dropzone.js - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Upload Files Directly To S3 Using Paperclip And Dropzone.js It\u2019s usually the small time-consuming tasks that frustrate us the most. Such as uploading a file to S3; the requirement is pretty simple but the method","og_url":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/uploader-des-fichiers-directement-sur-s3-en-utilisant-paperclip-dropzone-js\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2017-12-22T20:29:55+00:00","article_modified_time":"2021-06-05T07:04:12+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Upload Files Directly To S3 Using Paperclip And Dropzone.js","datePublished":"2017-12-22T20:29:55+00:00","dateModified":"2021-06-05T07:04:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/"},"wordCount":673,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png","keywords":["Ruby on rails"],"articleSection":["Technical Articles"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/","name":"Uploader des fichiers directement sur S3 en utilisant Paperclip et Dropzone.js - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png","datePublished":"2017-12-22T20:29:55+00:00","dateModified":"2021-06-05T07:04:12+00:00","description":"Uploader des fichiers directement sur S3 avec Paperclip et Dropzone.js Ce sont g\u00e9n\u00e9ralement les petites t\u00e2ches qui prennent du temps qui nous frustrent le plus. Par exemple, le t\u00e9l\u00e9chargement d'un fichier sur S3 ; le besoin est assez simple, mais la m\u00e9thode","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/12\/Upload-Files-Directly-To-S3-Using-Paperclip-And-Dropzone.js2_.png","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/upload-files-directly-s3-using-paperclip-dropzone-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Upload Files Directly To S3 Using Paperclip And Dropzone.js"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/27814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=27814"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/27814\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/31706"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=27814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=27814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=27814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}