কোনও সিএসএস স্টাইলশিট বা কোনও নোড থেকে লিঙ্কযুক্ত অনাথ ফাইল এবং চিত্রগুলি কীভাবে সন্ধান করবেন?


21

সমস্ত অব্যবহৃত ফাইলগুলি তালিকাভুক্ত করার কোনও উপায় আছে যা জনসাধারণের ফাইল সিস্টেমের ভিতরে এবং থিম ডিরেক্টরিতে থাকে এবং তাদের তালিকাভুক্ত করে, অথবা এমনকি সেগুলি স্বয়ংক্রিয়ভাবে মোছার বিকল্প রয়েছে?

আমার অর্থ এমন ফাইলগুলি যা বর্তমানে কোনও সিএসএস স্টাইলশিট বা কোনও নোড থেকে লিঙ্কযুক্ত নয়।


আমিও তার উত্তরটি জানতে চাই, প্রশ্ন পোস্ট করার জন্য ধন্যবাদ!
এনপিসি

আপনি কি কোনও ফিল্ডের সাথে আপলোড করা ফাইলগুলি (যেমন ইমেজফিল্ড) বা সাধারণভাবে ফাইলগুলি (আইএমসিই এর মাধ্যমে আপলোড করা) উল্লেখ করছেন? আমি মনে করি না আপনি রেফারেন্সের জন্য প্রতিটি নোড বডি অনুসন্ধান না করেই IMCE আপলোডগুলি ট্র্যাক করতে পারবেন।
চৌলকি

হ্যাঁ, আমি IMCE এর মাধ্যমে আপলোড করছি। আমি আশা করছিলাম এমন একটি মডিউল রয়েছে যা আপনি যা বলেছেন তা করে: চিত্রের রেফারেন্সগুলি খুঁজতে নোডগুলি স্ক্যান করুন, তারপরে অভ্যন্তরীণ ড্রুপাল রেফারেন্সগুলির জন্য (ডোমেন ছাড়াই) প্রাসঙ্গিক ডিরেক্টরিগুলি স্ক্যান করুন এবং অব্যবহৃত ফাইলগুলি অনুসন্ধানের জন্য উভয়ের তুলনা করুন। সম্ভবত ভাঙা লিঙ্কগুলি খুঁজে পাওয়ার জন্য একটি বিদ্যমান মডিউলে লিংকগুলির সাথে অনুরূপ কিছু করা হয়েছিল। তাই আমি ভেবেছিলাম ছবিগুলির জন্য সম্ভবত একই মডিউল উপস্থিত রয়েছে তবে সম্ভবত নেই ..
ক্যামক্যাম

উত্তর:


14

আপনি নিম্নলিখিত মাইএসকিউএল কোয়েরি চালিয়ে অনাথ ফাইলগুলি সন্ধান করতে পারেন:

SELECT fm.*
FROM file_managed AS fm
LEFT OUTER JOIN file_usage AS fu ON (fm.fid = fu.fid)
LEFT OUTER JOIN node AS n ON (fu.id = n.nid)
WHERE fu.type = 'node' AND n.nid IS NULL

এটি কোনও ফাইল যুক্ত করে যা সম্পর্কিত কোনও নোড নেই। আমি নিশ্চিত নন যে ফিরে আসা সারি এবং ফাইলগুলি মুছে ফেলা নিরাপদ কিনা তা সম্ভবত আপনার মডিউল সেটআপের উপরও নির্ভর করে। শুধুমাত্র আপনার নিজের ঝুঁকিতে ব্যবহার করুন!

সূত্র: http://drupal.org/node/733258#comment-5582764


5
আপনি নিজের পোস্টটি ........ drupal.org/node/733258#comment-5582764 থেকে কপিরাইট করে দেওয়া মূল পোস্টের লিঙ্কটি ভাগ করে নিতে পারতেন বলে মনে করি উত্সটি না দেখানো খুব অনৈতিক।
Sk8erPeter

উপরে বর্ণিত লিঙ্কটি অনুসরণ করার পরে, আমিও মনে করি drupal.org/node/733258#comment-7427898 এর কোডটি দরকারী কারণ এটি অনাথ ফাইল এবং তাদের সম্পর্কিত এন্ট্রি উভয়ই ডেটাবেজে মুছে ফেলবে।
মার্কোস বুয়ার্ক

প্রকৃতপক্ষে, @ Sk8erPeter, উত্তরে তথ্যগুলি যোগ করা এবং তারপরে এটি লিঙ্ক করা উপযুক্ত। বিশেষত যদি তারা স্ট্যাক এক্সচেঞ্জের বাইরের কোনও উত্স থেকে আসে।
ক্রিশ্চিয়া

1
@ ক্রিশ্চিয়া, যদি আপনি মূল পোস্টটি সম্পাদনা করার আগে আপনি পড়ে থাকেন (আমি লিঙ্কটি উত্তরে রেখেছিলাম), আপনি দেখতে পাচ্ছেন যে ডেভিড তার উত্স উল্লেখ না করে এবং পোস্টটির চারপাশে একটি উদ্ধৃতি চিহ্ন না রেখে অন্য কারও মন্তব্য শব্দটি কথায় কপি করেছেন। এটি চৌর্যবৃত্তি হিসাবে বিবেচনা করা যেতে পারে, এটি আমার মন্তব্য সম্পর্কে ছিল। :)
Sk8erPeter

আপনি এটিকে কিছু সদৃশ ফাইল আইডি উত্পাদন করতে দেখতে পাবেন তা এড়াতে এবং আমি একটি গ্রুপ যুক্ত করেছি এমন নকলগুলির একটি গণনা যুক্ত করতে। এফএম নির্বাচন করুন। *, COUNT (*) FMM থেকে ফাইল_ম্যানেজড এফএম লেফট আউটয়ার যোগদান করুন ফাইল_উসেজ হিসাবে fu অন (fm.fid = fu.fid) বাম আউটরের সাথে যোগ করুন নোড AS এন (fu.id = n.nid) যেখানে fu.type = 'নোড' এবং n.nid এফএম.ফিডের দ্বারা সম্পূর্ণ গ্রুপ নেই;
ক্যামেরন

5

তিন বছর পরে এই পোস্টে যারা আসছেন তাদের জন্য, একটি সামান্য মডিউল রয়েছে যা আপনি এটি ব্যবহার করতে পারেন ফ্যান্সি ফাইল মুছুন

এই পোস্টের সময়ে, এটি বিটাতে রয়েছে, সুতরাং এটি নিজের ঝুঁকিতে ব্যবহার করুন। বরাবরের মতো, ডিবি ক্যোয়ারির মাধ্যমে অনাথ যে কোনও কিছু পরিষ্কার করা স্কেচি হতে পারে এবং এর সাফল্য আপনার নির্দিষ্ট মডিউল সেটআপের উপর নির্ভর করে।


আমি এই মডিউলটি খুব বগল বলে মনে করেছি - যেখানে এটি অকেজো ছিল। ymmv।
ফেলিক্স ইভ

3

এমন কিছু যা " ফাইলগুলি যে নোড বা ফাইল এবং ডিরেক্টরিতে সংযুক্ত নেই যেগুলি ফাইল পরিচালিত সারণীতে নেই " সনাক্ত করতে সহায়তা করতে পারে ("" অব্যবহৃত ফাইলগুলি কীভাবে মুছবেন? " সম্পর্কে সদৃশ প্রশ্নে ) এটি ব্যবহার করতে হবে ফাইল চেকার মডিউল। এর প্রকল্প পৃষ্ঠা থেকে এটি সম্পর্কে কিছু বিশদ:

নিখুঁত ড্রুপাল বিশ্বে আপনার সার্ভারের ফাইল সিস্টেম এবং দ্রুপালের ফাইল সারণিতে এর আপত্তিজনক এন্ট্রিগুলি 100% সিঙ্ক্রোনাইজড। তবে কী যদি আপনার ফাইল সিস্টেমের কিছু অংশ কিছু ডিস্ক ব্যর্থতার কারণে দূষিত হয়ে যায়? বা আপনার কোনও মডিউল আপনার ডাটাবেস এবং ফাইলগুলিকে বিশৃঙ্খল করে দিয়েছে? অথবা আপনার মোতায়েনের স্ক্রিপ্টটি বেনার্ক হয়েছে? ঠিক আছে, তাহলে এই মডিউলটি আপনাকে নজরদারি করতে এবং কোন ফাইল সিঙ্কের বাইরে রয়েছে তা খুঁজে পেতে সহায়তা করবে।

বাক্সের বাইরে ফাইল সারণিতে দুটি ধরণের স্ট্যাটাস থাকে: অস্থায়ী (0) এবং স্থায়ী (1)। ফাইল পরীক্ষক একটি অতিরিক্ত স্থিতি মিসিং (2) পরিচয় করিয়ে দেয়। যাচাইকরণ প্রক্রিয়ার সুযোগে যা বিভিন্ন উপায়ে ট্রিগার করা যায় ফাইল টেবিলের স্থিতি কলাম আপডেট করা হয়।

বৈশিষ্ট্য

  • যাচাইকরণ প্রক্রিয়া চালান: চাহিদা অনুযায়ী, ক্রোনের মাধ্যমে, ড্রাশের মাধ্যমে (পরিকল্পনায়)
  • ফিল্টার সহ ফাইল তালিকা ওভারভিউ পৃষ্ঠা
  • ইন্টিগ্রেশন দর্শন
  • ফাইল চেকিংয়ের জন্য কমান্ড ড্রাশ করুন

আপনি যদি কোনও দৃশ্যের ফলাফল রফতানি করতে চান তবে ভিউ_ডেটা_এক্সপোর্ট মডিউলটি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

সুতরাং আপনি যা করতে পারেন তা এর মতো:

  • আপনার সাইটটি কিছু দেব পরিবেশে ক্লোন করুন (অনুলিপি করুন) তবে আপনি যে ডিরেক্টরিটি পরীক্ষা করতে চান সেটি ফাইলের কোনও অনুলিপি করবেন না। একটি প্রকরণ হিসাবে (যদি এই প্রশ্নটি একটি উত্পাদনহীন স্থিতিস্থানের সাইট সম্পর্কিত হয়), কেবল অস্থায়ীভাবে সমস্ত ফাইল that ডিরেক্টরি থেকে সরিয়ে নিন।
  • "অনুপস্থিত" ফাইলগুলি কী কী তা অনুসন্ধান করতে ফাইল পরীক্ষক মডিউলটি ব্যবহার করুন : এগুলি এমন ফাইল যা স্পষ্টত অব্যবহৃত নয় । তবে এই মডিউলে যে ফাইলটি তর্ক করে না তা হ'ল ... অব্যবহৃত!
  • আপনি যে ডিরেক্টরিটি যাচাই করতে চান তার সঠিক স্থানে সমস্ত অনুপস্থিত ফাইল অনুলিপি করে, আপনি তারপরে ধাপে ধাপে আপনার ডিরেক্টরিটির একটি নিখুঁত সামগ্রী পুনরায় তৈরি করুন।

দ্রষ্টব্য : যদিও এই প্রশ্নটি ডি 7 সম্পর্কিত, এটি ডি 8 এরও একটি (আলফা) সংস্করণ।


আমার সমস্যা সমাধানের জন্য খুব সহায়ক পদ্ধতি
কেবি 8

2

এমন একটি মডিউল রয়েছে যা অযাচিত ফাইলগুলি অভিনব ফাইল মোছা সরিয়ে দেয় ।

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


1
বড় আকারের বিশাল ক্রিয়াকলাপ এবং ভিবিও মডিউল নিয়ে আমার খারাপ অভিজ্ঞতা আছে। প্রাথমিকভাবে আমি পিয়েরি.ভায়ারেন্সের পরামর্শ মতো একটি পন্থা ব্যবহার করব, এর পরে আমি ফাইল ডিরেক্টরিটি পরিষ্কার রাখতে আপনার প্রস্তাবিত মডিউলটি ব্যবহার করব।
কেবি 8

0

আপনি অব্যবহৃত ফাইলটি মুছতে পারেন

  1. ফাইল_ম্যানেজড টেবিল থেকে ম্যানুয়ালি মুছুন , যেমন কিছু প্রশ্নের মাধ্যমে

    $this->database ->delete('file_managed') ->condition('fid', $fid, '=') ->execute();

  2. 0 ফাইলের স্থিতি নির্ধারণ , অস্থায়ী ফাইল হিসাবে চিহ্নিত করা, তাই ক্রোন নির্দিষ্ট সময়ের পরে এটি মুছবে।
    $file = File::load ($fid); $file->setTemporary();


0

অভিনব ফাইল মুছে মডিউল আমার জন্য সব সময়ে কাজ করে নি। এখানে আরও একটি ম্যানুয়াল বিকল্প রয়েছে।

পরিচালিত ফাইল টেবিলের মধ্যে নেই এমন ফোল্ডার থেকে ফাইলগুলি মুছতে আপনি করতে পারেন:

1) সমস্ত পরিচালিত ফাইলগুলির একটি তালিকা তৈরি করুন:

mysql whateverdb -e "select filename from file_managed" > ~/managed-files.txt

2) ডিরেক্টরিতে নেই এমন একটি ডিরেক্টরি থেকে সমস্ত ফাইল মুছুন। এটি করার জন্য আমি একটি ছোট ব্যাশ স্ক্রিপ্ট ব্যবহার করেছি:

#!/bin/bash

IMG_FOLDER='/var/www/html/yoursite/docroot/sites/default/files/certain-images'
EXCLUDES='/home/yourhomeuser/managed-files.txt'

for FILE in $IMG_FOLDER/*; do
  if ! grep "$FILE" "$EXCLUDES"; then
        echo "Deleting $FILE"
        rm -f "$FILE"
  fi
done

IMG_FOLDERআপনি যে কোনও ফোল্ডার থেকে ফাইল মুছতে চান তার পথে চলকটি পরিবর্তন করুন (এবং আপনার বাদ দেওয়া ফাইলের পাথ আপডেট করুন)

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