Home >Backend Development >PHP Tutorial >phpmaster | Integrating Amazon S3 using PEAR
File Hosting with Amazon S3: A Convenient Guide
Key points:
Register Amazon S3
The first step in this process is to register your own S3 account at aws.amazon.com/s3. There, find and click the Register Now button on the right and just follow the instructions provided.
After entering the "Security Credentials" page, scroll down and find the "Access Credentials" section. Here you will see your access key ID. Click the "Show" link near it to display your secret access key. These two pieces of information are everything you need to access your S3 account. Be sure to keep them in good condition.
The two tabs next to the Access Keys tab are specific to services other than S3. More specifically, the X.509 certificate is used to issue security requests when using the AWS SOAP API (except S3 and Mechanical Turk – they use access keys instead), and key pairs are used for Amazon CloudFront and EC2. Now that you have the access identifier, go back to the console page. On the left is the bucket list, which is empty at the beginning. A bucket is just a named container that stores a set of files. If you use S3 on multiple sites, this mechanism can help you separate and organize files from each site. Before you proceed, you need to create a bucket.
Installation Services_Amazon_S3
Next, you need to install the Services_Amazon_S3 PEAR package. Your server may have one installed, but this is unlikely unless you have administrator privileges. Therefore, you may need a local PEAR copy that is suitable for a shared hosting environment. The easiest way is to create this installation on the machine you have administrator rights and an existing PEAR installation and copy the installation to the managed environment you target. On *NIX systems, this can be done by running the following command from the terminal:
root@foobox:~# pear config-create `pwd` .pearrc root@foobox:~# pear -c .pearrc install -o Services_Amazon_S3
This will create a pear directory in the current working directory. This directory contains a php directory containing the actual PHP code for the installed PEAR package and its dependencies. This is the only directory you need to use S3 code in your own code; you can copy it or its contents as is to any directory in your project that is reserved for third-party dependencies. In order to actually use the code, you need to add the directory containing the Services subdirectory to your include_path. If /path/to/dir is the full path to the directory containing Services, you can add it to include_path like this:
<?php set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dir");
The rest of this article assumes that you have correctly installed the autoloader to load classes from that directory when used.
Using Services_Amazon_S3
There are two ways to use Services_Amazon_S3: use programmatically using the API, or use a stream wrapper through a stream. While the code using streams may be more concise, it may also be susceptible to PHP core errors related to stream context. An example is a bug fixed in PHP 5.3.4, where the copy() function does not actually use it if it provides a $context parameter value. It is recommended that you compare the PHP changelog to your version of PHP before deciding which method to use.
(The code sample part using stream wrappers and S3 API is omitted here, because this part is long and does not match the pseudo-original goal, so just keep the core idea.)
Summary
The Services_Amazon_S3 package allows you to get started with S3 quickly and easily even if you have never used this service before. It handles all the underlying details of interacting with S3 for you, allowing you to specify the data to operate and what to perform. Which method you choose (stream or API) really depends on how you use S3 and your personal preferences. As shown in this article, the code using either method can be more or less verbose depending on what you are doing. Hopefully this article gives you some insight into the features of S3 as a service. I encourage you to read more about S3, learn the examples and API documentation for Services_Amazon_S3, and consider integrating them all into your application.
(The FAQ part is omitted here because this part has a long content and is not very consistent with the pseudo-original goal, so just keep the core idea.)
The above is the detailed content of phpmaster | Integrating Amazon S3 using PEAR. For more information, please follow other related articles on the PHP Chinese website!