Only in amazons3 2.0: .DS_Store
diff amazons3 2.0/AmazonS3StreamWrapper.inc amazons3 2.1/AmazonS3StreamWrapper.inc
18c18
<    * @var AmazonS3 S3 client object, shared across all instances of 
---
>    * @var AmazonS3 S3 client object, shared across all instances of
64c64
<    * Records the number of calls to stream_write() between each call to 
---
>    * Records the number of calls to stream_write() between each call to
108c108
<    *   Returns a string representing the file's MIME type, or 
---
>    *   Returns a string representing the file's MIME type, or
156c156
<     // and create the AmazonS3 client. 
---
>     // and create the AmazonS3 client.
162,163c162,163
<         throw new Exception(t('AmazonS3 bucket name not configured. Please visit the !config_page.', 
<           array('!config_page' => l('configuration page', '/admin/config/media/amazons3'))));
---
>         throw new Exception(t('AmazonS3 bucket name not configured. Please visit the !config_page.',
>           array('!config_page' => l(t('configuration page'), '/admin/config/media/amazons3'))));
169c169
<          // I'm still looking for a better solution. -- coredumperror 2013/07/12 
---
>          // I'm still looking for a better solution. -- coredumperror 2013/07/12
267c267
<     // and the file doesn't exist, return a private URL instead. Drupal will 
---
>     // and the file doesn't exist, return a system URL instead. Drupal will
343a344
>     $this->_assert_constructor_called();
345,346d345
<     // This line will be important if this function ever gets implemented.
<     //$this->_assert_constructor_called();
385c384
<     // Special case for calls to dirname('s3://'), ensuring that recursive 
---
>     // Special case for calls to dirname('s3://'), ensuring that recursive
656c655
<    *   FALSE if the call to S3 failed, in which case the file will not be 
---
>    *   FALSE if the call to S3 failed, in which case the file will not be
757c756
<     // (so that recursive calls won't improperly report failure when they 
---
>     // (so that recursive calls won't improperly report failure when they
765,766c764,765
<     // with slashes in their names). To represent folders, we store them in the 
<     // metadata cache, without creating anything in S3. 
---
>     // with slashes in their names). To represent folders, we store them in the
>     // metadata cache, without creating anything in S3.
771c770
<     // If the STREAM_MKDIR_RECURSIVE option was specified, also create all the 
---
>     // If the STREAM_MKDIR_RECURSIVE option was specified, also create all the
775c774
<       return $this->mkdir($parent_dir, $mode, $options); 
---
>       return $this->mkdir($parent_dir, $mode, $options);
789c788
<    *   TRUE if directory was successfully removed. 
---
>    *   TRUE if directory was successfully removed.
869c868
<     $query = db_query("SELECT uri FROM {amazons3_file} WHERE uri LIKE :folder AND uri NOT LIKE :subfolder", 
---
>     $query = db_query("SELECT uri FROM {amazons3_file} WHERE uri LIKE :folder AND uri NOT LIKE :subfolder",
872,873c871
<     // Create $this->dir as an empty array, even if there aren't any matching 
<     // files, since the folder might be empty.
---
>     // Create $this->dir as an empty array, since the folder might be empty.
960c958
<    * Get the status of the file with the specified URI. 
---
>    * Get the status of the file with the specified URI.
1025c1023
<    * 
---
>    *
1032a1031
>     // Since this is an internal function, don't log it by default.
1048c1047
<       // Even when ignoring the cache, we still read folders from it, because 
---
>       // Even when ignoring the cache, we still read folders from it, because
1074a1074
>     // Since this is an internal function, don't log it by default.
1096a1097
>     // Since this is an internal function, don't log it by default.
1119a1121
>     // Since this is an internal function, don't log it by default.
diff amazons3 2.0/amazons3.drush.inc amazons3 2.1/amazons3.drush.inc
11c11
<     'description' => "Refreshes the AmazonS3 file metadata cache. Your Amazon S3 credentials, and the name of your site's bucket, must be configured first.",
---
>     'description' => t("Refreshes the AmazonS3 file metadata cache. Your Amazon S3 credentials, and the name of your site's bucket, must be configured first."),
diff amazons3 2.0/amazons3.install amazons3 2.1/amazons3.install
20c20
<   $error_message = $t('Amazon S3 module requires that the allow_url_fopen setting be turned on in php.ini.');
---
>   $error_message = $t('The AmazonS3 module requires that the allow_url_fopen setting be turned on in php.ini.');
24c24
<     'title' => $t('AmazonS3'),
---
>     'title' => 'AmazonS3',
53c53
<         'description' => 'The URI to access the file (either local or remote).',
---
>         'description' => 'The S3 URI of the file.',
87c87
<         'description' => 'The uid of the user who is associated with the file (not Drupal uid).',
---
>         'description' => 'The S3 uid of the user who is associated with the file.',
97a98
>     'collation' => 'utf8_bin'
187a189,198
> 
> /**
>  * Updates the amazons3_file table to use case sensitive collation.
>  */
> function amazons3_update_7201() {
>   // As stated here: http://forums.mysql.com/read.php?103,19380,200971#msg-200971
>   // MySQL doesn't directly support case sensitive UTF8 collation. Fortunately,
>   // 'utf8_bin' collation is good enough for our purposes.
>   db_query("alter table amazons3_file convert to character set utf8 collate utf8_bin;");
> }
diff amazons3 2.0/amazons3.module amazons3 2.1/amazons3.module
31c31
<     'description' => 'Configure your S3 credentials.',
---
>     'description' => t('Configure Amazons S3 settings.'),
58c58,59
<       return '<p>' . t('Amazon Web Services authentication can be configured on the <a href="@awssdk_config">AWS SDK configuration page</a>.', array('@awssdk_config' => url('admin/config/media/awssdk'))) . '</p>';
---
>       return '<p>' . t('Amazon Web Services authentication can be configured on the <a href="@awssdk_config">AWS SDK configuration page</a>.',
>         array('@awssdk_config' => url('admin/config/media/awssdk'))) . '</p>';
61c62,63
<       return '<p>' . t('To configure your Amazon Web Services credentials, enable the \'AWS SDK for PHP UI\' module, or define those settings in the $conf array in settings.php.') . '</p>';
---
>       return '<p>' . t('To configure your Amazon Web Services credentials, enable the \'AWS SDK for PHP UI\' module,
>         or define those settings in the $conf array in settings.php.') . '</p>';
82c84
<     '#description'    => t('Serve files from a custom domain by using an appropriately named bucket e.g. "mybucket.mydomain.com".'),
---
>     '#description'    => t('Serve files from a custom domain by using an appropriately named bucket, e.g. "mybucket.mydomain.com".'),
89c91
<     '#description'    => t('If serving files from CloudFront then the bucket name can differ from the domain name.'),
---
>     '#description'    => t('If serving files from CloudFront, the bucket name can differ from the domain name.'),
129c131
<     '#type' => 'submit', 
---
>     '#type' => 'submit',
160c162
<  * 
---
>  *
206c208
<  * Calls AmazonS3::list_objects() enough times to get all the files in the 
---
>  * Calls AmazonS3::list_objects() enough times to get all the files in the
208,209c210,211
<  * metadata in the cache table. 
<  * 
---
>  * metadata in the cache table.
>  *
211c213
<  * also be refreshed. 
---
>  * also be refreshed.
272,277c274,280
<         // This happens if there are two files in S3 with the same name, but
<         // different capitalization, and the database doesn't support keys which
<         // are case-insensitively identical (e.g. MySQL on OSX).
<         // When this happens, the best we can do is redo each insert one at a time,
<         // catching and logging the individual failures.
<         foreach ($metadata_list as $metadata) {
---
>         // This shouldn't ever happen!!!
>         // I originally coded this error correction for the case when there are two files in S3 with the same name, but
>         // different capitalization. By default, MySQL doesn't allow string which are case-insensitively identical, but
>         // I found out how to get around that (see amazons3_update_7201()).
>         // Just in case this does ever happen, though, the best we can do is redo each insert one at a time, catching
>         // and logging the individual failures.
>         foreach ($file_metadata_list as $metadata) {
285,286c288,290
<             drupal_set_message(t('The file @uri has the same name as another file in S3, but with different capitalization. ' .
<               'Your database does not support that, so the file cannot be cached, and will thus be treated as non-existent. It is strongly advised that you rename this file.', array('@uri' => $metadata['uri'])), 'warning');
---
>             drupal_set_message(t("The file @uri has the same name as another file in S3, but with different capitalization.
>               If you haven't done so already, be sure to run the database update script (drush updb).
>               If you've already done that, something is very wrong, and you should post a ticket to the AmazonS3 issue queue.", array('@uri' => $metadata['uri'])), 'warning');
291c295
<         // Other exception are unexpected, and should be percolated as normal.
---
>         // Other exceptions are unexpected, and should be percolated as normal.
368c372
<  * Converts objects returned by AmazonS3::get_objects() into s3 metadata arrays 
---
>  * Converts objects returned by AmazonS3::get_objects() into s3 metadata arrays
372,373c376,377
<   // This is a sloppy but effective way to do a deep conversion of an object 
<   // into a multi-dimentional array, found here: 
---
>   // This is a sloppy but effective way to do a deep conversion of an object
>   // into a multi-dimentional array, found here:
