Home >Backend Development >PHP Tutorial >phpmaster | Integrating Amazon S3 using PEAR

phpmaster | Integrating Amazon S3 using PEAR

Jennifer Aniston
Jennifer AnistonOriginal
2025-03-02 08:30:11403browse

File Hosting with Amazon S3: A Convenient Guide

Key points:

  • Amazon S3 (AWS's online storage network service) is a recommended file hosting service for its scalability and economics. Registering an account and getting access identifiers is the first step in using this service.
  • Services_Amazon_S3 PEAR package is a tool used to interact with S3 in an application. The installation process involves creating a PEAR directory in the current working directory that will contain the actual PHP code for the installed PEAR package and its dependencies.
  • There are two ways to use Services_Amazon_S3: use programmatically using the API, or use a stream wrapper through a stream. The choice of both methods depends on the specific purpose of S3 and personal preferences.
  • The Services_Amazon_S3 package simplifies interaction with S3 and handles all underlying details. It allows users to specify the data they want to operate on and what they want to perform. After learning the examples and API documentation, you can integrate this package with S3 into your application.
I'm recently looking for solutions to provide hosting services for the application I'm developing. I decided to look at Orchestra.io because I expected it to flood in a large amount of traffic at a specific point in time of year and would require the application to be able to scale accordingly. During the review of Orchestra.io's documentation, I found that it does not allow file uploads. Instead, it is recommended to use Amazon S3 for file hosting. If you are not familiar with it, S3 is part of Amazon Web Services (AWS) online storage network service. It provides access to fairly cheap storage through various network service interfaces. This article demonstrates how to register an Amazon S3 account and interact with S3 in your own application using the PEAR's Services_Amazon_S3 package.

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.

phpmaster | Integrating Amazon S3 using PEAR

At a short time later, you should receive an email with further instructions at the address you provided. If you don't receive it, or you lose your copy, you can simply access the AWS Management Console console.aws.amazon.com/s3. This area of ​​the website will provide you with your access identifier, which is the credentials you need to be able to write data to S3. If you have used a web service API that requires an access token, these access identifiers do the same. After opening the console page, look for the menu marked with your name in the upper right corner. Click it to expand it, and then click the "Security Credentials" option.

phpmaster | Integrating Amazon S3 using PEAR

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.

phpmaster | Integrating Amazon S3 using PEAR

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn