Php AmazonS3 bucket上传

Php AmazonS3 bucket上传,php,codeigniter,amazon-s3,app-config,Php,Codeigniter,Amazon S3,App Config,如何根据我所在的开发区域更改AmazonS3存储桶名称 例如:对于测试和开发,我有相同的AmazonS3存储桶。但是我想根据应用程序所处的环境动态更改bucket名称 我现在有这样的东西: $this->s3->putObjectFile($thumb_config['new_image'], 'newimage', $filename, S3::ACL_PUBLIC_READ); 我希望这个新映像是

如何根据我所在的开发区域更改AmazonS3存储桶名称

例如:对于测试和开发,我有相同的AmazonS3存储桶。但是我想根据应用程序所处的环境动态更改bucket名称

我现在有这样的东西:

$this->s3->putObjectFile($thumb_config['new_image'], 'newimage',
                                         $filename, S3::ACL_PUBLIC_READ);
我希望这个新映像是动态的,这取决于应用程序将是哪个服务器

我可以将这个新图像作为一个变量,但是我如何设置这个变量的值


请与我分享您的想法、想法和经验。

您可以使用环境配置文件:

您将在以下位置创建此文件:

/application/config/{ENVIRONMENT}/{FILENAME}.php

CodeIgniter将首先尝试从当前环境加载配置文件-如果没有找到,它将查找全局配置文件

例如:

/application/config/production/aws.php

/application/config/development/aws.php

在本地,将加载开发配置,但在环境设置为生产的生产服务器上,可以提供替代配置


希望这有帮助。

嗨,谢谢。我认为这是一个很好的解决方案。现在我有一个问题,如果我这样说:$filename=devfilename在开发aws.php中,$filename=profilename在生产aws.php中,我如何在控制器代码中使用它。我的意思是,我必须调用它,否则它会根据它所在的环境自动加载到它将看到$filename的位置。提前感谢。在您的控制器中,您将加载配置:
$this->config->load('aws',TRUE)然后可以访问bucket名称,具体取决于您的配置文件,例如:
$bucket=$this->config->item('bucket','aws')或者,您可以返回完整的AWS配置并作为数组访问它:
AWS=$this->config->item('AWS')
$bucket=$aws['bucket']