ใช้คำสั่งอะไรหาพื้นที่การใช้งานของแต่ละ directory ของสมาชิกดีครับ

เริ่มโดย okgofun, 10 ธันวาคม 2007, 14:01:47

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

okgofun

ใช้คำสั่งอะไรหาพื้นที่การใช้งานของแต่ละ directory ดีครับ :-*

คือผมทำระบบที่ให้สมาชิกโพสต์รูปหรือเก็บข้อมูลต่างๆเอาไว้ซึ่งก็จะเก็บเอาไว้ใน folder ของสมาชิกคนนั้นๆเอง

เมื่อก่อนผมจะใช้ exec ร่วมกับ php ในการส่งคำสั่งไปให้ server ตรวจสอบพื้นที่การใช้งานจริงๆเลย ซึ่งมันก็ดีมากๆครับ เร็วดี


แต่.. ตอนนี้ host ไม่ให้ใช้ exec แล้วครับ ผมเลยนึกออกแค่วิธีเดียวเป็นวิธีเก่าที่เคยทำมาคือวนลูปตรวจสอบขนาดไฟล์ต่างๆใน folder สมาชิกด้วยคำสั่ง filesize เอาแล้วค่อยมารวมแล้ว save ผลลัพย์เก็บไว้

แต่ว่า ถ้า folder สมาชิกมีหลายพัน folder แถมยังมี folder ย่อยต่างๆอยู่ใน folder หลักอีก ถ้าวนลูปเช็คด้วย filesize ระบบมันจะโหลดหนักเกินไปหรือปล่าวครับ


พอจะมีวิธีอื่นอีกใหมครับ  :P
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

payu



$path = "gal";
echo "Folder $path = ".filesize_r($path)." bytes";

function filesize_r($path){
  if(!file_exists($path)) return 0;
  if(is_file($path)) return filesize($path);
  $ret = 0;
  foreach(glob($path."/*") as $fn)
    $ret += filesize_r($fn);
  return $ret;
}


recursive function ครับ ...
ส่วนหนักเครื่องมั้ย ต้องลอง load test ดูครับ

[direct=http://www.facebook.com/iipayu]payu on facebook[/direct]

okgofun

อ้างถึงจาก: payu ใน 10 ธันวาคม 2007, 15:18:12


$path = "gal";
echo "Folder $path = ".filesize_r($path)." bytes";

function filesize_r($path){
  if(!file_exists($path)) return 0;
  if(is_file($path)) return filesize($path);
  $ret = 0;
  foreach(glob($path."/*") as $fn)
    $ret += filesize_r($fn);
  return $ret;
}


recursive function ครับ ...
ส่วนหนักเครื่องมั้ย ต้องลอง load test ดูครับ



เอ่อ ถ้าสมาชิก 1 คนมีการใช้งานพื้นที่ประมาณ 20 mb. ขึ้นไปหละครับ แล้วระบบแบบวนลูปเช็คขนาดไฟล์มันจะ timeout ใหมครับ ผมใช้ :P
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

okgofun

 :) อ่า ที่ผมทดสอบดูใน localhost เร็วมากเลยครับ 30 กว่า mb. แป๊บเดียวเช็คเสร็จ รู้สึกว่าใช้ glob จะเร็วกว่า opendir มากๆเลย

ขอบคุณครับ :D
จะต้องทำให้ได้เดือนละอย่างต่ำ $1,000 แล้วก็ไม่โดนแบน

EThaiZone

ผมว่าสร้าง db ส่วนหนึ่งไว้เก็บข้อมูลดีกว่านะครับ
แบบเวลาอัพก็ตรวจขนาดแล้วก็บันทึกเพิ่ม เวลาลบไฟล์ก็ตรวจแล้วหักออก

ผมว่าจะดีกว่านะ เพราะยังไงคงไม่เปิด ftp ให้อยู่แล้ว
ก็น่าจะเป็นการอัพผ่าน php   ::)

ColdMoney

[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]

thenetxx

เท่าที่เคยทำ วนลูปแล้วนับเพิ่ม ไม่เหนื่อยเท่าไรครับ

เพราะไฟล์ในโฟลเดอร์ น่าจะเป็นหลักร้อย Server ไม่ได้วนอ่านตลอดเวลา
ผมว่า น่าไม่เป็นปัญหานะครับ

ps. ไม่ให้ exec คงโดนเจาะมาอะครับ ก็คงต้องใจเค้าใจเราครับ
Develop site but can't develop life
ASIA