নেমএরর (অবিচ্ছিন্ন ধ্রুবক পেপারক্লিপ :: সঞ্চয়স্থান :: এস 3 :: এডাব্লুএস):


91

আমি ছবিগুলিকে আমার ওয়েব অ্যাপে অন্তর্ভুক্ত করার চেষ্টা করছি এবং বেশ কয়েকটি বৈশিষ্ট্য অপসারণের পরে আমি এই ত্রুটিটি চালিয়ে যাচ্ছি। এটি আমার 'তৈরি' অ্যাপ্লিকেশন কন্ট্রোলারে নেমে এসেছে এবং আমি এখান থেকে আমার কোথায় যাওয়া উচিত তা পুরোপুরি নিশ্চিত নই।

2015-02-06T20:30:12.292187+00:00 app[web.1]:    (1.9ms)  ROLLBACK
2015-02-06T20:30:12.296299+00:00 app[web.1]: NameError (uninitialized constant Paperclip::Storage::S3::AWS):
2015-02-06T20:30:12.296301+00:00 app[web.1]:   app/controllers/articles_controller.rb:24:in `create'
2015-02-06T20:45:14.691084+00:00 app[web.1]: [paperclip] saving /articles/images/000/000/013/original/git.jpeg
2015-02-06T20:45:14.698744+00:00 app[web.1]: Completed 500 Internal Server Error in 584ms
2015-02-06T20:45:14.700871+00:00 heroku[router]: at=info method=POST path="/articles" host=preston.herokuapp.com request_id=d9d02257-3616-4686-bce5-3d912cd528c2 fwd="76.22.102.38" dyno=web.1 connect=1ms service=698ms status=500 bytes=1754

নিবন্ধ_কন্ট্রোল.আরবি

class ArticlesController < ApplicationController
http_basic_authenticate_with name: "name", password: "password", except: [:index, :show]

    def index
        @articles = Article.all.order("created_at DESC")
    end

    def show
        @article = Article.find(params[:id])
    end

    def new
        @article = Article.new
    end 

    def edit
        @article = Article.find(params[:id])

    end

    def create
        @article = Article.new(article_params)

        if @article.save
          redirect_to @article
        else
            render 'new'
        end  
    end

    def update
        @article = Article.find(params[:id])

        if @article.update(article_params)
            redirect_to @article
        else
            render 'edit'
        end
    end

    def destroy
        @article = Article.find(params[:id])
        @article.destroy

        redirect_to articles_path
    end

    private

    def article_params
        params.require(:article).permit(:title, :text, :image)
    end
end

রত্ন

source 'https://rubygems.org'
ruby '2.0.0'

gem 'rails', '4.2.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'bootstrap-sass', '~> 3.3.3' 
gem 'autoprefixer-rails'
gem 'paperclip', '~> 4.2.1'
gem 'aws-sdk', '~> 2.0.22'

group :development, :test do
 gem 'byebug'
 gem 'web-console', '~> 2.0'
 gem 'spring'
 gem 'sqlite3'
end

group :production do
    gem 'pg'
    gem 'rails_12factor'
end

group :doc do
    gem 'sdoc', '~> 0.4.0', require: false
end

আপনি কি হেরোকুতে মোতায়েন করছেন?
আহমদ আল-খেত

হ্যাঁ, আমি ইতিমধ্যে পেয়েছি এবং আমি হিরকু লগগুলি সন্ধান করছি এবং সেই ত্রুটিটি পেয়েছি।
এগসিক্স

4
সেট AWS_SECRET_ACCESS_KEY = your_secret_access_key: SET S3_BUCKET_NAME = your_bucket_name $ heroku কনফিগ: সেট AWS_ACCESS_KEY_ID = your_access_key_id $ heroku কনফিগ এটা কারণ আপনার Heroku মধ্যে Aws ধ্রুবক আরম্ভ করা হয়নি সম্ভবত, আপনি $ heroku কনফিগ চালানোর প্রয়োজন
আহমদ আল-kheat

হুম আমি এই পদক্ষেপটি অনুসরণ করেছি তবে ঠিক আছে তা নিশ্চিত করার জন্য আমি সমস্ত শুরু করব
এগসিক্স

ঠিক আছে যদি এটি কাজ করে তবে আমাকে তা জানিয়ে দিন যাতে আমি এটির উত্তর জনগণের পক্ষেও উপকৃত হতে পারি।
আহমদ আল-খেত

উত্তর:


179

২.০ এর পূর্বে সংস্করণ ইনস্টল করতে আপনার জেমফাইলের অ্যাডস-এসডিকে সংশোধন করুন:

gem 'aws-sdk', '< 2.0'

এই ইস্যুটি অ্যাডস-এসডিকে (২.০+) নতুন সংস্করণ সহ প্রবর্তিত হয়েছিল। আপনি এখানে আরও পড়তে পারেন: http://ruby.awsblog.com/post/TxFKSK2QJE6RPZ/Up आगामी-Stable-Release-of-AWS-SDK- for- রবি- সংস্করণ ২


4
আমি খুঁজে পেয়েছি যে কারণটি আপডেট করা 'আউস-এসডিকে' রত্নে রয়েছে। অ্যাউস-এসডিকে একটি নতুন সংস্করণ (2+) রয়েছে যা পূর্ববর্তী সংস্করণগুলির সাথে পিছনে সামঞ্জস্যপূর্ণ নয়। আপনি এখানে
টোপাজেড

ধন্যবাদ, আমার ঠিক যা প্রয়োজন!
স্প্রেচপ্রফি 21

27
এছাড়াও, আপনি সেই লাইনটি প্রতিস্থাপন করতে পারেন gem 'aws-sdk-v1'। এরপরে এটি আপনাকে ভি 2 আউস-এসডিকে রত্নে টানতে দেয়। বিভিন্ন নামের জায়গার কারণে এগুলি একই অ্যাপ্লিকেশনে একসাথে ব্যবহার করা যেতে পারে।
ট্রেভর রোয়ে

ট্রেভর রোয়ের সমাধান আমার পক্ষে নিখুঁতভাবে কাজ করেছে - এবং এগুলি একই সাথে ব্যবহার করা যেতে পারে তা খুব কার্যকর। ধন্যবাদ ট্রেভর!
এক্সট্রাস্পিলিটি

18

অফিসিয়াল সমাধান রয়েছে এই শাখা থেকে পেপারক্লিপ ব্যবহার করুন: এটি 2-র উপরে আউস-এসডিকি সংস্করণগুলির সাথে কাজ করে

gem 'paperclip', :git=> 'https://github.com/thoughtbot/paperclip', :ref => '523bd46c768226893f23889079a7aa9c73b57d68'

কেবল যুক্ত করুন: আপনার পেপারক্লিপ এস 3 কনফিগারেশনে s3_region পরামিতি

আমার জন্য কাজ কর


4
এই এখন সেরা উত্তর, যেহেতু aws 1 হ্রাস করা হয়েছে।
আরডোচিঘ

4

আমি আমার রত্ন ফোল্ডারে নেভিগেট করে এবং রত্নগুলিকে এতে পরিবর্তন করে কাজ করতে পেরেছি:

  • মণি 'পেপারক্লিপ'
  • রত্ন 'আউস-এসডিকে'

সংস্করণ ঘোষণা বাদ দেওয়া যেতে পারে।

একটি পেতে এড়াতে gem.lock error, bundle updateপরিবর্তে চালানbundle install , অন্যথায় কেবল রত্ন আপডেট করা হবে।

এখন, heroku logs -tকমান্ডটি হিরকু সার্ভারটি চিত্র আপলোডগুলি পর্যবেক্ষণ করতে ব্যবহার করা যেতে পারে।

আমি স্বাভাবিকভাবে Access Denied ErrorAWS সার্ভারের জন্য একটি নতুন ত্রুটি পেয়েছি ।

এটি ঠিক করতে আমি Active Access Key IDঅ্যামাজন ওয়েবসাইটে সর্বশেষ তারিখটি পেয়েছি Access key IDএবং সর্বশেষ এবং ইনপুট করতে হিরকু কমান্ড ব্যবহার করেছি Secret access key

এটি আমাকে আমার ছবিটি হিরকুতে দেখতে সক্ষম করেছে।

আমি অনেকগুলি তৈরি করেছিলাম Access key IDএবং Secret access keysসমস্যাটি সমাধান করার চেষ্টা করেছি, তবে রত্নকেই আসল সমস্যা বলে মনে করেছি।

টিপ: আপনার সমস্ত অ্যাক্সেস কী তথ্য ওয়ান নোট, নোটপ্যাড ইত্যাদিতে সংরক্ষণ করুন আপনি এভাবে ফিরে যেতে পারেন এবং সেগুলি পরীক্ষা করতে পারেন।


আমি একই সমস্যাটিতে চলেছি, আপনি কি সংস্করণগুলি সরিয়ে সমাধান করেছেন?
গ্যারি ওয়ালেন

3

৪.৩ সংস্করণ এবং বেলোতে AWS-SDK v1 ব্যবহার করার জন্য পেপারক্লিপ ব্যবহার। তারা AWS-SDK ভি 2 অন্তর্ভুক্ত করার চেষ্টা করছে

অফিসিয়াল আপগ্রেড ডকুমেন্ট https://github.com/thoughtbot/paperclip/blob/master/UPGRADING

##################################################
#  NOTE FOR UPGRADING FROM 4.3.0 OR EARLIER       #
##################################################

Paperclip is now compatible with aws-sdk >= 2.0.0.

If you are using S3 storage, aws-sdk >= 2.0.0 requires you to make a few small
changes:

* You must set the `s3_region`
* If you are explicitly setting permissions anywhere, such as in an initializer,
  note that the format of the permissions changed from using an underscore to
  using a hyphen. For example, `:public_read` needs to be changed to
  `public-read`.

কিছু পিছনের অপ্রয়োজনীয়তার কারণে (এই https://github.com/thoughtbot/paperclip/issues/2021 পড়ুন ) এটিকে মার্জ করা হয়েছে তবে আনুষ্ঠানিকভাবে এখনও প্রকাশ করা হয়নি, তবে পেপারক্লিপ ভি-তে প্রকাশ করা উচিত5.0.0

সুতরাং ভাইটালি মোগিলিভস্কি যেমন উল্লেখ করেছেন, আপনাকে এখনই এটি ব্যবহার করতে হবে:

# Gemfile
# ...
gem 'paperclip', :git=> 'https://github.com/thoughtbot/paperclip', :ref => '523bd46c768226893f23889079a7aa9c73b57d68'

পেপারক্লিপ 5.0 প্রকাশিত হলে, এডাব্লুএস-এসডিকে ভি 2 অন্তর্ভুক্ত করা উচিত

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.