我试图了解Docker。我有一个非常基本的容器设置,它运行一个简单的python脚本:
当我从主机运行脚本时,一切都按预期工作:查询触发,csv创建并完美上传。但是当我从Docker容器中运行它时,tinys3失败并出现以下错误:
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='my-s3-bucket', port=443): Max retries exceeded with url: /bucket.s3.amazonaws.com/test.csv (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f4f17cf7790>: Failed to establish a new connection: [Errno -2] Name or service not known',))
之前的所有内容(查询和CSV创建)。 This answer suggests that there's an incorrect endpoint。但这看起来并不正确,因为从我的主机运行脚本不会导致错误。
所以我的问题是:我错过了一些明显的东西吗?这是tinys3模块的问题吗?我是否需要在我的容器中设置一些内容以允许它“呼叫”#34;?或者有更好的方法吗?
答案 0 :(得分:0)
或者您也可以使用minio-py客户端库。
的示例代码from minio import Minio
from minio.error import ResponseError
client = Minio('s3.amazonaws.com',
access_key='YOUR-ACCESSKEYID',
secret_key='YOUR-SECRETACCESSKEY')
# Put on object 'my-objectname-csv' with contents from
# 'my-filepath.csv' as 'application/csv'.
try:
client.fput_object('my-bucketname', 'my-objectname-csv',
'my-filepath.csv', content_type='application/csv')
except ResponseError as err:
print(err)
希望它有所帮助。
免责声明:我使用Minio