我在s3中有一个Bucket,我试图拉出那里的图像的url.
我正在使用boto3和boto3似乎没有实现生成url方法.
他们有一个核心方法,生成这样的URL,
import botocore.session
session = botocore.session.get_session()
client = session.create_client('s3')
presigned_url = client.generate_presigned_url(
'get_object', Params={'Bucket': self.bucket_name, 'Key': self.key})
Run Code Online (Sandbox Code Playgroud)
我不得不做的一件事是,我必须使用会话对象发送参数和每个请求.并且上面的方法不允许我设置会话变量(即.. aws凭证)
我能得到的最接近的是这个
session = Session(aws_access_key_id='342342342342', aws_secret_access_key='3434234322', region_name='us-east-1')
s3 = session.resource('s3')
object = s3.Object('my-dev-bucket', 'amazonKeyString')
print object.get()["Body"]
Run Code Online (Sandbox Code Playgroud)
这让我获得了亚马逊s3对象,这是一个被称为的对象
botocore.response.StreamingBody object at 0x7ffaff8cef50
Run Code Online (Sandbox Code Playgroud)
我可以这样得到图像的网址吗?
请帮助Prabhakar S.
每当我读到有关html和图像的文章时,我都会看到这样的锚标记:
<img src="http://www.tizag.com/pics/htmlT/sunset.gif" />
但是,就我而言,我已将图像存储在AWS-S3中,而我正在从S3读取图像.这个,我没有预先设置像" http://www.tizag.com/pics/htmlT/sunset.gif " 这样的路径
那么当图像存储在S3中时,将图像嵌入到html页面中最常用的技术是什么?图像的路径未知?
如果我的问题令人困惑,我将以不同的方式提出.
我正在建立一个简单的项目.每当用户登录时,他会得到一个页面说"欢迎",而下面的欢迎说明是个人资料图片.
但是,假设我有10个用户,这10个用户中的每个用户将拥有与图像不同的URL.
例如:
<img src = "http:bucket.amazonaws.com/USER1'> 对于用户1
<img src = "http:bucket.amazonaws.com/USER2'> 对于用户2
等等.
因此,我将显示的图像not known直到运行时,图像路径取决于谁登录.如何使我的HTML页面智能化,以便图像src不是一个常量,可以根据谁登录而变得灵活?
JSP中的解决方案,我可以做的,感谢很多答案:
<body>
<% String url = (String)request.getAttribute("url"); %>
<img src = <%= url %>></img>
</body>
Run Code Online (Sandbox Code Playgroud)
从servlet调用此JSP代码.
request.setAttribute("url", "URL to image.");
RequestDispatcher view = request.getRequestDispatcher("URLImage.jsp");
view.forward(request, response);
Run Code Online (Sandbox Code Playgroud)