গিট ব্যবহার করে এস 3 এ প্রকাশ করবেন?


89

কেউ কি জানেন, এটা কিভাবে করে? এখন পর্যন্ত আমি গুগলের মাধ্যমে দরকারী কিছু খুঁজে পাচ্ছি না।

আমি সত্যিই একটি স্থানীয় রেপো সেটআপ করতে চাই এবং git pushএটি এস 3 এ প্রকাশ করার জন্য ব্যবহার করব , ধারণাটি সম্পত্তির উপর স্থানীয় সংস্করণ নিয়ন্ত্রণ রয়েছে তবে এস 3 এ রিমোট স্টোরেজ রয়েছে।

এটি করা যেতে পারে, এবং যদি হয় তবে কীভাবে?


4
ওপি, বর্তমানে গৃহীত প্রশ্নের উত্থাপিত প্রশ্নের ক্ষেত্রে প্রযোজ্য না। বৃহত্তর ভাল জন্য আপডেট করা সম্ভব হবে? আমি s3fsএকটি কার্যকর সমাধান বলে বিশ্বাস করি ।
বিএনজেএমএন

4
@ বেঞ্জামিন আমার দৃষ্টি আকর্ষণ করার জন্য ধন্যবাদ এটির জন্য, এটি আপডেট হয়েছে it's
অ্যান্ড্রু

কোনও দূরবর্তী সংগ্রহস্থল (কমিটের ব্যাকআপ ইতিহাস সংরক্ষণ করার জন্য) স্থাপন করা এবং গিট হুকটি কেবল এস 3 বালতি (যেমন s3cmd sync …:) এর সাথে সিঙ্ক করার জন্য কী ব্যবহার করা উচিত নয় ?
ফাবিয়েন স্নোওয়ার্ট

উত্তর:


50

1 জেগিতটি http://blog.spearce.org/2008/07/ using-jgit-to-publish-on-amazon-s3.html এর মাধ্যমে ব্যবহার করুন

Jgit.sh ডাউনলোড করুন, এটির নামকরণ জগিত করুন এবং এটি আপনার পথে রাখুন (উদাহরণস্বরূপ $ হোম / বিন)।

.Jgit কনফিগারেশন ফাইলটি সেটআপ করুন এবং নিম্নলিখিতগুলি যুক্ত করুন (আপনার AWS কীগুলি প্রতিস্থাপন করুন):

$ vim ~ / .jgit

accesskey: aws access key
secretkey: aws secret access key

দ্রষ্টব্য, acl উল্লেখ না করে: .jgit ফাইলে পাবলিক, এস 3-তে গিট ফাইলগুলি ব্যক্তিগত হবে (যা আমরা চেয়েছিলাম)। এরপরে আপনার সংগ্রহস্থলগুলিকে সঞ্চয় করতে একটি এস 3 বালতি তৈরি করুন, আসুন একে গিট-রেপো বলুন এবং তারপরে আপলোড করার জন্য একটি গিট সংগ্রহস্থল তৈরি করুন:

s3cmd mb s3://git-repos
mkdir chef-recipes
cd chef-recipes
git init
touch README
git add README
git commit README
git remote add origin amazon-s3://.jgit@git-repos/chef-recipes.git

উপরের দিকে আমি বালতিটি তৈরি করতে s3cmd কমান্ড লাইন সরঞ্জামটি ব্যবহার করছি তবে আপনি এটি অ্যামাজন ওয়েব ইন্টারফেসের মাধ্যমেও করতে পারেন। এখন এটি এস 3-তে চাপ দিন (খেয়াল করুন যখনই আমরা এস 3 এর সাথে ইন্টারেক্টিভ করি এবং আমরা অন্যথায় স্ট্যান্ডার্ড গিট কীভাবে জগিত ব্যবহার করি):

jgit push origin master

এখন অন্য কোথাও যান (যেমন সিডি / টিএমপি) এবং এটি ক্লোন করার চেষ্টা করুন:

jgit clone amazon-s3://.jgit@git-repos/chef-recipes.git

যখন এটি আপডেট করার সময় আসে (কারণ jgit মার্জ বা টানাকে সমর্থন করে না) আপনি এটি 2 টি ধাপে করেন:

cd chef-recipes
jgit fetch
git merge origin/master

2 অ্যামাজন এস 3 এর সমর্থিত ফুস-ভিত্তিক ফাইল সিস্টেম ব্যবহার করুন

  1. একটি আমাজন এস 3 অ্যাকাউন্ট পান!

  2. ডাউনলোড, সংকলন এবং ইনস্টল করুন। (ইনস্টলেশন নোট দেখুন)

  3. নিম্নলিখিত কোনও পদ্ধতির মাধ্যমে আপনার সুরক্ষা শংসাপত্রগুলি (অ্যাক্সেস কী আইডি এবং গোপন অ্যাক্সেস কী) নির্দিষ্ট করুন:

    • passwd_file কমান্ড লাইন বিকল্পটি ব্যবহার করে

    • AWSACCESSKEYID এবং AWSSECRETACCESSKEY পরিবেশের ভেরিয়েবল সেট করে

    • আপনার হোম ডিরেক্টরিতে একটি .passwd-s3fs ফাইল ব্যবহার করে

    • সিস্টেম-ওয়াইড / ইত্যাদি / passwd-s3fs ফাইল ব্যবহার করে

    • এটা কর

/usr/bin/s3fs mybucket /mnt

এটাই! আপনার অ্যামাজন বালতি "মাইবুকিট" এর সামগ্রীগুলি এখন / মন্টে পড়ার / লেখার অ্যাক্সেসযোগ্য হওয়া উচিত


4
আমি এই দিকনির্দেশগুলি অনুসরণ The request signature we calculated does not match the signature you provided. Check your key and signing methodকরেছি তবে চেষ্টা করার পরে আমি একটি ত্রুটি পেয়েছি jgit push origin master। কোনও ধারণা কীভাবে আমি এটিকে দূরে সরিয়ে নিতে পারি?
জন

4
আপনি শুধু গিট ব্যবহার করবেন না কেন? এটি কেবলমাত্র একটি সাধারণ দূরবর্তী গিট রেপো জন্য অনেক অতিরিক্ত কাজ /
স্টাফের

4
আমি এই (বাস্তব) উত্তরটি হালকা করে একটি post-receiveহুক দিয়ে আরও এক ধাপ এগিয়ে যেতে পরামর্শ দিচ্ছি যা চেক আউট করে GIT_WORK_TREE। দেখুন এখানে আরো বিস্তারিত জানার জন্য। আমি এটি বেশ ভাল সঙ্গে কাজ পেয়ে শেষ s3fs। উচ্চ প্রস্তাবিত এবং আমাকে শুরু করতে সাহায্য করার জন্য ধন্যবাদ।
bnjmn

4
@ সিএমক্লোঃ যদি আপনার ইতিমধ্যে ইসি 2 উদাহরণ না থাকে তবে এটি আরও বেশি সমস্যা এবং দীর্ঘমেয়াদী ব্যয় হতে পারে কেবল গিট রেপো রাখতে। এছাড়াও এস 3 স্টোরেজ ডিফল্টরূপে অনেক বেশি টেকসই; ইসি 2 তে একই স্থায়িত্ব পেতে আপনাকে যেভাবেই হোক এস 3-এ স্ন্যাপশটের ব্যাক করতে হবে
জেরেমি

4
মনে হচ্ছে ব্লগ পোস্টটি jgit প্রকল্প পৃষ্ঠাটিকে উদাহরণস্বরূপ [ eclipse.org/egit/] প্রকল্পের ভাণ্ডারের সাথে লিঙ্ক করতে আপডেট করা হয়েছে এবং এটি সমাধানটিকে পুরো 1 টি বিভ্রান্ত করে তুলেছে । কিছুটা অনুসন্ধানের পরে আমি আসল জগিত প্রকল্প পৃষ্ঠাটি পেয়েছিলাম যেখান থেকে jgit.sh ডাউনলোড এবং ব্যবহার করা যেতে পারে। ভবিষ্যতে যার প্রয়োজন হতে পারে তার জন্য লিঙ্কটি eclipse.org/jgit/download
এমএন ইসলাম শিহান

9

ড্যান্ডেলিয়ন হ'ল একটি সি এল এল সরঞ্জাম যা গিট সংগ্রহস্থলগুলিকে এস 3 / এফটিপি / এসএফটিপি-র সাথে সিঙ্ক করে রাখবে: http://github.com/scttnlsn/dandelion


কে এটিকে কমেছে তা ধারণা নেই। আমি মনে করি যদি স্থানীয় সংস্করণ পরিচালনার জন্য গিটের পাশাপাশি বর্ধিত ও হোস্টিংয়ের জন্য এস 3 বর্ধিত লক্ষ্য রাখা হয় তবে এই সমাধানটি ভাল। এটাই মনে হচ্ছে প্রশ্ন।
তাবরেজ

8

git-s3 - https://github.com/schickling/git-s3

তোমাকে শুধু দৌড়াতে হবে git-s3 deploy

এটি গিট রেপোর সমস্ত উপকারের সাথে আসে এবং আপনার পরিবর্তিত ফাইলগুলি আপলোড / মুছে দেয়।
দ্রষ্টব্য: ডিপ্লয়গুলি গিট পুশের মাধ্যমে অন্তর্ভুক্ত নয় তবে আপনি এটি গিট হুকের মাধ্যমে অর্জন করতে পারেন।


14
এফওয়াইআই, এটি নির্ভর করে Composerযা ঘুরে ফিরে নির্ভর করে PHP
মার্টেন

3

আপনি এমসি ওরফে মিনিও ক্লায়েন্ট ব্যবহার করতে পারেন , এটি গোলংয়ে লিখিত এবং ওপেন সোর্স অ্যাপাচি লাইসেন্সের অধীনে উপলব্ধ। এটি ম্যাক, লিনাক্স, উইন্ডোজ, ফ্রিবিএসডি-র জন্য উপলব্ধ। mc mirrorআপনার প্রয়োজনীয়তা অর্জনের জন্য আপনি আদেশটি ব্যবহার করতে পারেন ।

এমসি জিএনইউ / লিনাক্স ডাউনলোড করুন

64-bit Intel from https://dl.minio.io/client/mc/release/linux-amd64/mc
32-bit Intel from https://dl.minio.io/client/mc/release/linux-386/mc
32-bit ARM from https://dl.minio.io/client/mc/release/linux-arm/mc
$ chmod +x mc
$ ./mc --help

আমাজন এস 3 এর জন্য এমসি কনফিগার করছে

$ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
  • আপনার অ্যাক্সেস / গোপন কী দিয়ে প্রতিস্থাপন করুন
  • ডিফল্টরূপে এমসি অ্যামাজন এস 3 এর স্বাক্ষর সংস্করণ 4 ব্যবহার করে।
  • মাই 3 ক্লোমের জন্য অ্যামাজন এস 3 ওরফে

আপনার গিথুব স্থানীয় সংগ্রহস্থল / ডিরেক্টরিটি মিরর করুনmygithub অ্যামাজন এস 3 বালতির নাম বলুনmygithubbkp

$ ./mc mirror mygithub mys3/mygithubbkp

আশা করি এটি অস্বীকারকারীকে সহায়তা করবে: আমি মিনির পক্ষে কাজ করি


3

আপনি এডাব্লুএস সি এল এল এবং গিট (হুক সহ) ব্যবহার করে এটিও করতে পারেন। উইন্ডোজ 10 এ কাজ করা যাচাই করা হয়েছে লিনাক্স / ম্যাকের জন্য কাজ করা উচিত।

প্রতিশ্রুতিতে S3 এ সিঙ্ক সেটআপ করুন

  1. AWS CLI ইনস্টল করুন
  2. আইএএম প্রোগ্রাম্যাটিক অ্যাক্সেস শংসাপত্রগুলি সেটআপ করুন (আপনি এস 3 এবং এমনকি কেবল বালতিতে সীমাবদ্ধ করতে পারেন)।
  3. শংসাপত্রগুলির সাথে AWS CLI কনফিগার করুন
  4. এডাব্লুএস কনসোল বা সি এল এল এ এস 3 বালতি তৈরি করুন।
  5. বালতিটি ব্যক্তিগত কিনা তা নিশ্চিত করুন।
  6. bareআপনার বিদ্যমান গিট প্রকল্পের একটি নতুন গিট রেপো তৈরি করুন:
mkdir myproject.git
cd myproject.git
git init --bare

দ্রষ্টব্য: একটি খালি রেপো ব্যবহার করা প্রবাহ হিসাবে কাজ করবে এবং খালি রেপোতে কেবল এমন পরিবর্তনগুলি আসবে যা আপনি এস 3 বাল্টিতে আপলোড করতে চান এবং ফাইল, স্থানীয় গিট কনফিগারেশন ইত্যাদি উপেক্ষা করবেন না etc.

  1. এই হুক ইনস্টল post-updateমধ্যে hooksখালি এর myproject.gitনির্দেশিকা।
    #!/bin/sh; C:/Program\ Files/Git/usr/bin/sh.exe
    # Sync the contents of the bare repo to an S3 bucket.
    aws s3 sync . s3://myproject/
    
  2. সঠিক এস 3 বালতি নাম দিয়ে হুক আপডেট করুন।
  3. এখন আপনার myprojectডিরেক্টরিতে সিডি করুন এবং খালি রেপোটিকে একটি প্রবাহ হিসাবে যুক্ত করুন, s3উদাহরণস্বরূপ নাম দিন :
git remote add s3 path/to/bare/directory/myproject.git 

দ্রষ্টব্য: আপনি খালি ডিরেক্টরিটিতে যাওয়ার পথে একটি আপেক্ষিক পথ ব্যবহার করতে পারেন।

পরীক্ষামূলক

  1. আপনার রেপোতে পরিবর্তন যুক্ত করুন এবং প্রতিশ্রুতিবদ্ধ।
  2. s3আপনি যখন আপনার এস 3 বালতিতে পরিবর্তনগুলি সিঙ্ক করতে চান তখন আপনার পরিবর্তনগুলিকে প্রবাহে চাপুন।
  3. আপনি উল্লেখ করেছেন যে এস 3 বালতিতে পরিবর্তনগুলি সিঙ্ক হয়েছে তা দেখতে হবে, সমস্ত কাজ করা যাচাই করার জন্য আপনি এস 3 বাল্টির পরিবর্তনগুলিও দেখতে পারেন।

তথ্যসূত্র:


আপনার যদি ইতিমধ্যে AWS CLI এবং গিট ইতিমধ্যে ইনস্টল থাকে তবে এটি ঠিক আছে। এটি হুক সম্পর্কে গিট জ্ঞান ধরেছে যে আপনি কীভাবে আইএএম ব্যবহারকারী এবং প্রোগ্রাম্যাটিক শংসাপত্রগুলি সেটআপ করতে এবং এস 3 বালতি তৈরি করবেন তা জানেন।
বি01

সুতরাং আমি কি সঠিকভাবে বুঝতে পারি যে এটিতে স্থানীয়ভাবে দুটি রেপো রয়েছে এবং খালি লোকাল রেপো পোস্ট-আপডেটের মাধ্যমে নিজেকে এস 3-তে সিঙ্ক করতে প্রস্তুত আছে?
জোশিয়ার

@ জোসিয়াহ হ্যাঁ এটি সঠিক is যদিও এটি প্রয়োজনীয় নয়, এটি কেবলমাত্র আপনার এস 3-তে চান ফাইলগুলি সিঙ্ক করতে সহজতর করতে সহায়তা করে, কারণ খালি রেপোতে কেবল প্রতিশ্রুতিবদ্ধ ফাইল থাকবে। আমি খালি রেপো ছাড়াই এটি চেষ্টা করেছিলাম, তবে তারপরে আমাকে কিছু ফাইল এস 3-তে সিঙ্কিং থেকে বাদ দিতে হয়েছিল, লক্ষণীয়ভাবে .gitignore ফাইলের মধ্যে কিছু নেই।
b01

1

আপনি Deplybot ( http://deploybot.com/ ) পরিষেবাটি ব্যবহার করতে পারেন যা একক গিট সংগ্রহস্থলের জন্য বিনা মূল্যে।

আপনি মোতায়েন মোড বিভাগে "স্বয়ংক্রিয়" নির্বাচন করে স্থাপনাকে স্বয়ংক্রিয় করতে পারেন।

আমি এখন এটি ব্যবহার করছি। এটি খুব সহজ এবং দরকারী।


আর মুক্ত নয়।
এমএক্সসিএল

-1

সংস্করণ গিথুব দিয়ে আপনার ফাইল নিয়ন্ত্রণ? এই স্ক্রিপ্ট (এবং এর সাথে সম্পর্কিত গিটহাব / এডাব্লুএস কনফিগারেশন) আপনার রেপোতে নতুন কমিট নেবে এবং সেগুলিকে আপনার এস 3 বালতিতে সিঙ্ক করবে।

https://github.com/nytlabs/github-s3-deploy


-1

এর জন্য আপনার জেজিট দরকার ।

আউস শংসাপত্রগুলির সাহায্যে কেবল একটি ডিরেক্টরিতে জাজিট ফাইল সংরক্ষণ করুন এবং আপনি এস 3 সহ গিট ব্যবহার করতে পারেন।

আপনার গিট ইউআরএল দেখতে কেমন হবে তা এখানে।

amazon-s3://.jgit@mybucket/myproject.git

আপনি সবকিছু আপনি না কি করতে পারেন gitসঙ্গে jgit

এখানে একটি সম্পূর্ণ সেটআপ গাইড পান।

https://metamug.com/article/jgit-host-git-repository-on-s3.html

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