<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BBProject.net &#187; plik</title>
	<atom:link href="http://www.bbproject.net/tag/plik/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bbproject.net</link>
	<description>Programowanie, webmastering, informatyka</description>
	<lastBuildDate>Mon, 26 Jul 2010 08:03:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Kopiowanie pliku między serwerami w PHP</title>
		<link>http://www.bbproject.net/2010/01/kopiowanie-pliku-miedzy-serwerami-w-php/</link>
		<comments>http://www.bbproject.net/2010/01/kopiowanie-pliku-miedzy-serwerami-w-php/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 10:55:15 +0000</pubDate>
		<dc:creator>M@ster</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Webmastering]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[kopiowanie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plik]]></category>
		<category><![CDATA[serwer]]></category>

		<guid isPermaLink="false">http://www.bbproject.net/?p=142</guid>
		<description><![CDATA[Swego czasu, gdy publikowałem jeden ze swoich projektów, w celu odciążenia serwera głównego (limit transferu) wysyłałem plik jeszcze na kilka innych. Jako iż jego rozmiar osiągał 30MB, a łącze jakim dysponowałem nie było demonem prędkości, powstał problem &#8211; jak przyspieszyć ten proces? W tym momencie natknąłem się na możliwość kopiowania plików między serwerami przy pomocy [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-192" title="Pliki" src="http://www.bbproject.net/wp-content/uploads/2010/01/files-160x197.jpg" alt="" width="160" height="197" />Swego czasu, gdy publikowałem jeden ze swoich projektów, w celu odciążenia serwera głównego (limit transferu) wysyłałem plik jeszcze na kilka innych. Jako iż jego rozmiar osiągał 30MB, a łącze jakim dysponowałem nie było demonem prędkości, powstał problem &#8211; jak przyspieszyć ten proces?</p>
<p>W tym momencie natknąłem się na możliwość kopiowania plików między serwerami przy pomocy skryptu PHP. Serwery dostawców usług hostingowych są wyposażone w bardzo szybkie łącza (z reguły), a co za tym idzie, ściągnięcie pliku z innej lokalizacji trwa sekundy zamiast długich minut jakie ja poświęcałem na wrzucenie pliku na każdy FTP z osobna.</p>
<p>Wszystko co musimy zrobić to napisać prosty skrypt PHP i umieścić go w lokalizacji docelowej &#8211; a ten, wykona za nas cała czarną robotę.</p>
<p><span id="more-142"></span>Właściwie wpis ten ogranicza się do jeden komendy w języku PHP: <a href="http://pl2.php.net/manual/en/function.copy.php"><em>copy</em></a>. To za jej pomocą możliwe jest kopiowanie plików. Ale to co nas interesuje to fakt, że plik źródłowy nie musi znajdować się na lokalnym serwerze. Składnia polecenia wygląda następująco:</p>
<pre>bool <strong>copy</strong> ( string <tt>$source</tt> , string <tt>$dest</tt> [, resource <tt>$context</tt> ] )</pre>
<p>Pierwszym parametrem jest plik źródłowy, drugim docelowy, a sama funkcja zwraca wartość PRAWDA/FAŁSZ, mówiąca nam o tym czy operacja kopiowania się udała. Przykładowo:</p>
<pre class="brush: php">copy('http://downloads.sourceforge.net/sevenzip/7z465.exe', '7z465.exe');</pre>
<p>W wyniku otrzymamy pobrany plik <em>7z465.exe</em> do folderu bieżącego (tego w którym znajduje się sam skrypt PHP).</p>
<p>I to w zasadzie wszystko. Czy opłaca się bawić w takie rozwiązania? W moim przypadku, czyli dla serwera na którym stoi ten blog, kopiowanie plików z innego serwera odbywa się z średnią prędkością <strong>60mbps</strong>! W stosunku do moich marnych 512kbps upload&#8217;u jest to kolosalna różnica i oszczędność czasu. Oczywiście wszystko zależy od łącza naszego serwera i docelowego, nie mniej w większości przypadków, są to prędkości przewyższające te jakie oferują nam dostawcy internetu (w akceptowalnych cenach <img src='http://www.bbproject.net/wp-includes/images/smilies/icon_smile.png' alt=':)' class='wp-smiley' /> ).</p>
<p>Na sam koniec, udostępniam prosty <a href="http://www.bbproject.net/wp-content/uploads/2010/01/copy.zip">skrypt PHP</a>, który umożliwia wygodne wykorzystanie funkcji <em>copy</em> &#8211; zawiera formularz oraz wyświetla statystyki po zakończeniu kopiowania.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bbproject.net/2010/01/kopiowanie-pliku-miedzy-serwerami-w-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
