我正在创建一个小型网站,并希望使用亚马逊的S3来托管和提供用户上传的图像.然而,我稍微关注带宽使用(和账单),因为我读过一些关于恶意用户发送账单的恐怖故事.显而易见的事情是阻止热链接.但这只会关闭那些只想包含图像的人.仍有可能有人故意提出大量请求.除了在EC2中运行你自己的前端(这有点挫败了S3的目的?!)并运行一个关闭服务的监控脚本有什么我可以做的吗?
在宏内部,我如何要求编译器推断构造树的类型?我只找到Context.typeCheck,但它只检查类型但不返回结果.
我正在使用Cassandra 1.2.7和使用CQL3的官方Java驱动程序.
假设由一个表创建
CREATE TABLE foo (
row int,
column int,
txt text,
PRIMARY KEY (row, column)
);
Run Code Online (Sandbox Code Playgroud)
然后我想预制相当于 SELECT DISTINCT row FROM foo
至于我的理解,应该可以在Cassandra的数据模型中有效地执行这个查询(给定复合主键的实现方式),因为它只是查询'raw'表.
我搜索了CQL文档但我没有找到任何选项来做到这一点.
我的备份计划是创建一个单独的表 - 类似于
CREATE TABLE foo_rows (
row int,
PRIMARY KEY (row)
);
Run Code Online (Sandbox Code Playgroud)
但这需要让两者保持同步的麻烦 - 写入foo_rows用于foo中的任何写入(也是性能损失).
那么有没有办法查询不同的行(分区)键?
我做了一个自定义视图,它应该根据一些外部数据为背景上的点设置动画.(就像带有textviews的魅力一样)
然后在xml中添加视图并设置android:background.
视图正确呈现但不更新.一些调试显示onDraw只被调用一次.缺什么?
我的自定义视图的代码:
public class Gmeter extends ImageView {
private Bitmap dot;
private float dotHeight, dotWidth;
public Gmeter(Context context, AttributeSet attrs) {
super(context, attrs);
dot = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.g_dot);
dotWidth = dot.getWidth();
dotHeight = dot.getHeight();
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
float dataX =(float) Data.getX();
float x = (getWidth()-dotWidth)/2f;
float y = (getHeight()-dotHeight)/2f;
x+= dataX * getWidth() /2f;
canvas.drawBitmap(dot, x, y, null);
}
}
Run Code Online (Sandbox Code Playgroud)