DJVUSERVE(1) DjVuLibre-3.5 DJVUSERVE(1)

djvuserve - تولید بلادرنگ اسناد غیرمستقیم DjVu

برنامه djvuserve یک برنامه CGI است که می‌تواند توسط یک سرور HTTP برای ارائه‌ی اسناد DjVu اجرا شود. این برنامه قادر است یک سند چندصفحه‌ای یکپارچه (bundled) را به‌صورت بلادرنگ (on the fly) به یک سند غیرمستقیم (indirect) تبدیل کند.

برنامه djvuserve ابتدا باید به عنوان یک برنامه CGI برای وب‌سرور شما نصب شود. روش‌های گوناگونی برای انجام این کار وجود دارد. به عنوان مثال، وب‌سرور Apache اغلب با استفاده از دستورالعمل ScriptAlias یک دایرکتوری خاص را برای برنامه‌های CGI تعیین می‌کند. فرض کنید فایل httpd.conf شامل خط زیر باشد:

ScriptAlias /cgi–bin/ "/var/www/cgi–bin"

در این صورت، کافی است یک اسکریپت شل اجرایی کوچک به نام /var/www/cgi–bin/djvuserve حاوی خطوط زیر ایجاد شود:

#!/bin/sh
exec /full/path/to/djvuserve

فرض کنید یک سند چندصفحه‌ای یکپارچه‌ی بزرگ DjVu در URL زیر در دسترس باشد:

http://server/dir/doc.djvu

برنامه CGI djvuserve به شما امکان می‌دهد با استفاده از URL زیر، به همین سند به عنوان یک سند چندصفحه‌ای غیرمستقیم DjVu دسترسی پیدا کنید:

http://server/cgi–bin/djvuserve/dir/doc.djvu/index.djvu

ارائه‌ی اسناد چندصفحه‌ای غیرمستقیم DjVu شرایطی را فراهم می‌کند تا مرور اسناد بزرگ بدون انتقال صفحات غیرضروری در بستر شبکه، به شکلی کارآمد انجام پذیرد. برای اطلاعات بیشتر djvu(1) را ببینید.

علاوه بر این، djvuserve کلیدواژه‌های خاصی را در میان آرگومان‌های CGI موجود در URL جستجو می‌کند. کلیدواژه‌ی bundled ارائه‌ی سند را به‌صورت یکپارچه با استفاده از نشانی زیر اجبار می‌کند:

http://server/cgi–bin/djvuserve/dir/doc.djvu?bundled

کلیدواژه‌ی download یک سرآیند HTTP از نوع content disposition درج می‌کند که پیشنهاد می‌دهد به جای نمایش سند، کادر گفتگوی ذخیره‌سازی باز شود:

http://server/cgi–bin/djvuserve/dir/doc.djvu?download

وب‌سرور Apache روشی را برای اجرای خودکار djvuserve برای تمامی اسناد DjVu ارائه می‌دهد. این کار را می‌توان با استفاده از دستورالعمل‌های زیر در فایل پیکربندی Apache یا فایل‌های .htaccess انجام داد:

Action djvu-server /cgi–bin/djvuserve/
AddHandler djvu-server .djvu

سپس Apache برنامه djvuserve را برای ارائه‌ی تمامی فایل‌های DjVu اجرا می‌کند. فراهم کردن URL فایل DjVu، آن را مانند گذشته ارائه می‌دهد، با این تفاوت که اسناد چندصفحه‌ای یکپارچه به‌صورت بلادرنگ به اسناد غیرمستقیم تبدیل می‌شوند. این آسودگی به بهای بار محاسباتی ناشی از اجرای djvuserve در هر بار درخواست فایل DjVu تمام می‌شود.

برنامه djvuserve روشی فراهم می‌کند تا با استفاده از یک URL گسترش‌یافته، بتوان مستقیماً به هر جزء از یک سند چندصفحه‌ای یکپارچه‌ی DjVu دسترسی یافت. فرض کنید نام فایل جزئی که نشان‌دهنده‌ی صفحه‌ی ۱ است، p0001.djvu باشد. URL زیر دسترسی مستقیم به این صفحه را ممکن می‌سازد:

http://server/cgi–bin/djvuserve/dir/doc.djvu/p0001.djvu

با این حال، ترجیح بر این است که با استفاده از آرگومان‌های سبک CGI توصیف‌شده در nsdejavu(1)، مانند URL زیر، به صفحات مجزا دسترسی پیدا شود:

http://server/cgi–bin/djvuserve/dir/doc.djvu?djvuopts&page=12

نام فایل جزء ویژه index.djvu به عنوان درخواستی برای شاخص سند چندصفحه‌ای غیرمستقیم متناظر شناخته می‌شود. در واقع، هنگامی که با استفاده از djvuserve به یک سند یکپارچه دسترسی پیدا می‌کنید، مرورگر به URL زیر تغییر مسیر داده می‌شود:

http://server/cgi–bin/djvuserve/dir/doc.djvu/index.djvu

و سپس به گونه‌ای رفتار می‌کند که گویی فایل یکپارچه، دایرکتوری‌ای حاوی فایل‌های جزء مختلف از یک سند غیرمستقیم معادل بوده است.

برنامه djvuserve، مانند بسیاری از برنامه‌های CGI، تعدادی از تدابیر محافظت از دسترسی که در یک وب‌سرور تنظیم شده‌اند را دور می‌زند. برای مثال فرض کنید وب‌سایت شما شامل فایل‌های DjVu محافظت‌شده با گذرواژه است. برنامه djvuserve چیزی درباره این محافظت نمی‌داند و با کمال میل هر فایل DjVu مرتبط با یک URL معتبر را ارائه خواهد داد.

کنترل دسترسی با djvuserve را می‌توان ابتدا با در نظر گرفتن این نکته پیاده‌سازی کرد که وب‌سرور همیشه برنامه djvuserve را از طریق اسکریپت شل /var/www/cgi–bin/djvuserve اجرا می‌کند.

این اسکریپت می‌تواند بر اساس نام فایل هدف که در متغیر محیطی PATH_TRANSLATED موجود است، درباره اجرای برنامه واقعی djvuserve تصمیم‌گیری کند.

می‌توان چندین اسکریپت از این دست ایجاد کرد که دسترسی به مجموعه‌های گوناگون فایل‌های DjVu را فراهم کنند. هر یک از این اسکریپت‌ها را می‌توان با استفاده از روش‌های متداول ارائه‌شده توسط وب‌سرور، با گذرواژه محافظت نمود.

ابرپیوندهایی که با استفاده از یک URL نسبی مشخص شده‌اند ممکن است با djvuserve کار نکنند. این URL ها نسبت به URL سند DjVu سنجیده می‌شوند. با این وجود، djvuserve URL ظاهری سند یعنی http://server/dir/doc.djvu را به URL پیچیده‌تر http://server/cgi–bin/djvuserve/dir/doc.djvu/index.djvu. تبدیل می‌کند. این اجزای اضافی، تفسیر URL های نسبی را دگرگون می‌سازند.

این برنامه توسط Leon Bottou <leonb@users.sourceforge.com> نوشته شده است.

djvu(1), djvmcvt(1), nsdejavu(1)

01/22/2002 DjVuLibre-3.5